PHP图像上传后无法找到上传的文件

时间:2011-04-21 04:41:16

标签: php upload

我使用以下代码将文件从iPhone应用程序上传到PHP:

<?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"];
    }
}
?>

之后,我收到成功消息“uploads / 2542543.jpg” - 但我似乎无法找到图像实际存储的位置。文件路径是相对于php文件(在php中 - 并且有一个uploads文件夹)还是从根文件中绝对的?

编辑:看起来该文件应该以php / uploads / filename.jpg结尾 - 但它似乎没有成功。我不太明白为什么 - 任何人都有任何想法?

2 个答案:

答案 0 :(得分:2)

这是来自根

的绝对路径
/uploads/2543.jpg

这是PHP文档的相对路径

uploads/2543.jpg

所以你正在使用相对路径(注意开始时缺少/

答案 1 :(得分:2)

这是使用upload_tmp_dir指令在php.ini中定义的。如果未设置,则使用系统默认值,您可以使用sys_get_temp_dir找出。我相信它在Linux上默认为/tmp,在Windows上默认为C:\Windows\Temp\