开发者

Can't find uploaded files after PHP image upload

I'm uploading files from an iPhone app to PHP using the following code:

<?php
    if ($_FILES["media"]["error"] > 0) {
    echo "Error: " . $_FILES["media"]["error"] . "<br />";
    } else {
    echo "Upload: " . $_FILES["media"]["name"];
    echo "Type: " . $_FILES["media"]["type"];
    echo "Size: " . ($_FILES["media"]["size"] / 1024);
    echo "Stored in: " . $_FILES["media"]["tmp_name"];

    if (file_exists("uploads/" . $_FILES["开发者_运维问答media"]["name"])) {
        echo $_FILES["media"]["name"] . " already exists. ";
    } else {
        move_uploaded_file($_FILES["media"]["tmp_name"],
        "uploads/" . $_FILES["media"]["name"]);
        echo "Stored in: " . "uploads/" . $_FILES["media"]["name"];
    }
}
?>

Afterwards, I get the success message saying "uploads/2542543.jpg" - but I can't seem to find where the image is actually stored. Is the filepath relative to the php file (which is in php - and has an uploads folder) or is it absolute from the root??

EDIT: Looks like the file should have ended up in php/uploads/filename.jpg - but it doesn't appear to be making it. I don't quite understand why - anyone have any idea?


This is an absolute path from the root

/uploads/2543.jpg

This is a relative path from your PHP document

uploads/2543.jpg

So you're working with a relative path (note the missing / at the start)


This is defined in php.ini using the upload_tmp_dir directive. If that's not set, it uses the system default, which you can figure out using sys_get_temp_dir. I believe it defaults to /tmp on Linux, and C:\Windows\Temp\ on Windows.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜