无法在PHP中上传图像

问题描述 投票:1回答:4

我正在按照http://www.w3schools.com/php/php_file_upload.asp提供的代码上传图片。

而不是$ target_dir =“uploads /”;我正在指定本地系统的路径,我想上传图像。

我在最后收到成功消息,但我找不到指定位置的图像。有什么我误解或遗失的吗?

谢谢 !

php image-uploading
4个回答
1
投票

如果在linux中运行代码,则必须具有目录中的写入权限。 将权限目录更改为qazxsw poi


0
投票

检查文件夹访问权限。一定是755。


0
投票

这也发生在我身上,经过多次测试我才能解决。我正在使用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,则可以遵循相同的推理,并为新图像名称指定绝对路径。

这对我有用,我希望它对你也有帮助。


-1
投票

如果您使用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 ""; ?>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.