- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 blueimp's jQuery file upload script .
文件被发送到“upload.php”:
if (isset($_FILES['file'])) {
$file = $_FILES['file'];
// Set variables
$file_name = stripslashes($file['name']);
if (!is_uploaded_file($file['name'])) {
echo '{"name":"'.$file_name.' is not a uploaded file."}';
exit;
}
}
.. 尽管传递了 isset($_FILES['file']),但脚本在 is_uploaded_file 处失败。
可能是什么原因造成的?
编辑:
我从 $file['name']
更改为 $file['tmp_name']
并且 is_uploaded_file
被传递。现在脚本在 move_uploaded_file
处失败:
if (move_uploaded_file($file_name, $upload_dir."/".$file_name)) {
echo "success";
} else {
echo "failed";
}
最佳答案
您应该使用is_uploaded_file($file['tmp_name'])
。这是服务器上的实际文件名。
$file['name']
是客户端计算机上的文件名,仅适用于上传后重命名文件。
有关更多信息,请阅读 is_uploaded_file()
上的文档:
For proper working, the function is_uploaded_file() needs an argument like $_FILES['userfile']['tmp_name'], - the name of the uploaded file on the client's machine $_FILES['userfile']['name'] does not work
此外,您说 move_uploaded_file()
也不起作用。正如预期的那样,这是由完全相同的问题引起的:
您正在尝试移动文件 $file_name
,但 $file_name
设置为 $file['name']
而不是 $file['tmp_name']
。请注意,$file['name']
仅包含与计算机上原始文件名相同的字符串,而 $file['tmp_name']
code> 包含一个字符串,该字符串指向服务器上未临时存储文件名的路径。
关于PHP 和 jQuery 文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497588/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!