input type=file
提示并允许我们选择多个文件作为"文件对象"。其中一个文件对象属性是"name",但它是只读的。当我在JS中使用带有AJAX和FormData的PHP时,它工作得很好,但当文件名中有空格时,它有时会使用一两个空格,但大多数时候都会失败。现在在PHP中,它是成对的
$_FILES['uploaded_file']['name']
(大小,键入其他值)
and isset($_FILES['uploaded_file'])
失败,否则我将使用str_replace(" ","%",$name);
,但isset失败(仍在试图找出原因?)
- 是否可以修改输入类型=文件所选文件对象的名称
- 如果没有解决方案1,如何能够通过
isset($_FILES['uploaded_file'])
障碍在PHP中做str_replace(" ","%",$name)
不确定我是否遵循,但主要问题似乎是文件名中的空格?向表单中添加enctype=multipart/form数据可能会有所帮助。否则,我会获取文件名的值,并通过其中一个替换函数对其进行过滤,将空格转换为其他内容,如
$filename = str_replace(' ', '-', $filename);
然后让脚本继续。空格通常读作%20。
我确信PHP
足够聪明,可以上传包含空格的文件名。
另外,你说它有时有效,一定是其他原因引起了问题。
您可以使用is_uploaded_file()
检查上传,并使用转储$_FILE
调试
if (!is_uploaded_file($_FILES['uploaded_file']['tmp_name'])) {
print_r($_FILES)
}
如果存在,您将看到错误