Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件名中带有空格的PHP mp3上传_Php_Upload_Mp3_Filenames - Fatal编程技术网

文件名中带有空格的PHP mp3上传

文件名中带有空格的PHP mp3上传,php,upload,mp3,filenames,Php,Upload,Mp3,Filenames,我正在建立一个网站,用户可以上传他们的MP3,我遇到了一个我无法解决的小问题: 上传工作正常,但只有当用户选择的mp3文件中没有空格。像“My nice mp3 file.mp3”这样的文件将导致$\u FILES['file']为空。这与服务器配置有关吗 有人知道如何解决这个问题吗?除了告诉用户只上传名称中没有空格的MP3文件,即:-) Thanx Maenny远程(客户端)文件的文件名不应影响将其传输到服务器的方式。您确定是空格造成了问题吗?尝试对文件名进行urlencode() 如果不起作

我正在建立一个网站,用户可以上传他们的MP3,我遇到了一个我无法解决的小问题:

上传工作正常,但只有当用户选择的mp3文件中没有空格。像“My nice mp3 file.mp3”这样的文件将导致$\u FILES['file']为空。这与服务器配置有关吗

有人知道如何解决这个问题吗?除了告诉用户只上传名称中没有空格的MP3文件,即:-)

Thanx


Maenny

远程(客户端)文件的文件名不应影响将其传输到服务器的方式。您确定是空格造成了问题吗?

尝试对文件名进行urlencode()

如果不起作用,请尝试rawurlencode()


如果这不起作用,我就错了:)

正如其他用户所说,问题可能不是空间造成的。我的第一个想法是检查PHP的上传限制是否设置得足够高。还请记住,无论用户如何调用他们的文件,您都不应该将其与该文件名一起存储在服务器上-这样做会有太多潜在安全漏洞的风险


为了诊断这个问题,我建议创建一个你知道可以的MP3文件,制作两个副本——一个带空格,一个不带空格。然后看看有空格的那个是否失败。如果是这样的话,那么至少你知道你已经找到了问题的根源——如果不是,那么你已经消除了一个可能的原因,你可以去别处看看。

空格不应该导致这个问题。我有一个MP3上传在我的网站上,没有空间的问题。我用“testname.mp3”进行了测试,效果很好

为了帮助您诊断任何潜在的问题,请尝试转储$\u FILES数组的内容,并检查其中是否有任何线索

print_r($_FILES);

好吧,我做了完全相同的-相同的文件与空格将不工作,wothout工程完美。是的,我重命名了所有上传到服务器的文件,但是,如果我有一个空的$u files['file'],我就没有什么可以重命名的了。。。我还将PHP的上传限制设置为脚本中所有文件大小限制的两倍……PHP.ini是否将文件上传设置为On?我已经找不到可能发生这种情况的原因了。是的,当然,如果不是的话,上传的文件将根本无法工作,不是吗?未知。我敢肯定,你会收到一条错误消息。但我不知道还有什么原因。您是否有一些示例代码可供我查看?是的,我确定,请参阅后面的注释两个答案。这是否发生在每个浏览器上/您是否使用一些客户端脚本来增强上载选项(例如,用于多文件选择的flash)?否,我没有增强上载选项,但我只是在Firefox和chromeJust上测试了这个脚本,以确定:您将如何准确地处理编码?也就是说,我应该在什么时候使用urlencode()。我有一个带有a和action=“myscript.php”的表单。在myscript.php中,我访问$_文件['file']。我必须对$_FILES-var进行编码吗?这可能不是PHP的问题。这在Windows上吗?IE的某些版本存在已知问题。如果这是您的问题,PHP甚至无法获取该文件。是的,似乎是这样。我使用了chrome和firefoy进行测试,虽然…打印文件($\文件)的结果是空的,但是,正如前面所说的,只有在名称中有空格的情况下。