我正在按照http://www.w3schools.com/php/php_file_upload.asp提供的代码上传图片。
而不是$ target_dir =“uploads /”;我正在指定本地系统的路径,我想上传图像。
我在最后收到成功消息,但我找不到指定位置的图像。有什么我误解或遗失的吗?
谢谢 !
如果在linux中运行代码,则必须具有目录中的写入权限。 将权限目录更改为qazxsw poi
检查文件夹访问权限。一定是755。
这也发生在我身上,经过多次测试我才能解决。我正在使用linux 64,Ubuntu发行版和Vesta经理。
这是解释:
move_uploaded_file($ filename,$ destination)函数接收两个参数。
第一个是有效的上传文件,即它是由php的HTTP POST方法发送的。
第二个是图像文件将被移动的名称。您正在获得成功,因为$ filename是有效文件,$ destination也是有效名称。
如果你打印文件的内容将有类似的东西:
777
要使用move_uploaded_file()函数,您必须传递上面引用的参数。
错误类型:
UPLOAD_ERR_OK:0
* UPLOAD_ERR_INI_SIZE:1
* UPLOAD_ERR_FORM_SIZE:2
* UPLOAD_ERR_NO_TMP_DIR:6
* UPLOAD_ERR_CANT_WRITE:7
* UPLOAD_ERR_EXTENSION:8
UPLOAD_ERR_PARTIAL:3
[错误模式]:仅传递新图像名称
{
"name": ["name-image.jpg"],
"type": ["image/jpeg"],
"tmp_name": ["/home/domain-name/tmp/phpVApV3h"],
"error": [0],
"size": [772014]
}
[CORRECT MODE]:传递链接图像的新名称及其绝对路径
$target = 'new-image-name.jpg';
if(!move_uploaded_file($file['tmp_name'][0], $destination)){
switch($file['error']){
case UPLOAD_ERR_INI_SIZE:
echo "Error related to image size ...";
break;
case UPLOAD_ERR_NO_TMP_DIR:
echo "The temp directory was not found ...";
break;
case UPLOAD_ERR_CANT_WRITE:
echo "Could not save image to new location ...";
break;
case UPLOAD_ERR_EXTENSION:
echo "Error related to image extension ...";
break;
case UPLOAD_ERR_PARTIAL:
echo "Partial error while uploading image ...";
break;
default:
echo 'An error has occurred!';
}
}
echo 'The image upload was successful!';
如果您使用的是Windows,则可以遵循相同的推理,并为新图像名称指定绝对路径。
这对我有用,我希望它对你也有帮助。
如果您使用wamp或xampp运行此代码,如果您在核心php中上传图像,请尝试此代码
'; if (**move_uploaded_file**($_FILES['userfile']['tmp_name'],$uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; } echo 'Here is some more debugging info:'; print_r($_FILES); print ""; ?>