【问题标题】:Error moving uploaded file php移动上传的文件php时出错
【发布时间】:2018-01-28 13:34:35
【问题描述】:

我尝试将图像加载添加到我的网站,但它给了我错误。这是工作 php 的结果:

C:\Users\Admin\AppData\Local\Temp\php9664.tmp 警告:move_uploaded_file(/img/collection/usbwebserver.exe):无法打开流:第 26 行的 D:\Home\Volodya\Projects\Web\CollectionSite\site\php\collection.php 中没有这样的文件或目录

警告:move_uploaded_file():无法将“C:\Users\Admin\AppData\Local\Temp\php9664.tmp”移动到 D:\Home\Volodya\Projects 中的“/img/collection/usbwebserver.exe” \Web\CollectionSite\site\php\collection.php 在第 26 行

她是我的代码: 一个表格:

echo ('
    <form action="collection.php" method="post" enctype="multipart/form-data">
        <legend>Add coin</legend>
        <select name="countryId">
');     

if(mysqli_num_rows($resultCountry)>0) {
    while($row=mysqli_fetch_assoc($resultCountry)) {
        echo("<option value=".$row['country_id'].">".$row['country_name']."</option>");
    }
}

echo('
        </select>
        <select name="curencyId">
');

if(mysqli_num_rows($resultCurency)>0) {
    while($row=mysqli_fetch_assoc($resultCurency)) {
        echo("
            <option value=".$row['curency_id'].">".$row['curency_name']."</option>
        ");
    }
}

echo('
    </select>
    <select name="metalId">
');

if(mysqli_num_rows($resultMetal)>0) {
    while($row=mysqli_fetch_assoc($resultMetal)) {
        echo("
            <option value=".$row['metal_id'].">".$row['metal_name']."</option>
        ");
    }
}

echo('
        </select>
        <select name="nominalId">
');

if(mysqli_num_rows($resultNominal)>0) {
    while($row=mysqli_fetch_assoc($resultNominal)) {
        echo("
            <option value=".$row['nominal_id'].">".$row['nominal_name']."</option>
        ");
    }
}

echo('
        </select>
        <input type="date" name="dateCreation">
        <input type="number" name="weight">
        <input type="number" name="mintage">
        <input type="file" name="img">
        <input type="hidden" name="type" value="addcoin">
        <input type="submit" value="Add coin">
    </form>               
');

还有一份应对文件的代码:

echo($_FILES['img']['tmp_name']);
move_uploaded_file($_FILES['img']['tmp_name'], "/img/collection/".basename($_FILES['img']['name']));

【问题讨论】:

    标签: php file file-upload


    【解决方案1】:

    您正在尝试将图像存储在磁盘的根目录中。

    尝试在文件路径前加上__dir__$_SERVER['DOCUMENT_ROOT']

    例如:

    move_uploaded_file($_FILES['img']['tmp_name'], 
        __dir__ . "/img/collection/".basename($_FILES['img']['name'])) ;
    

    EDIT 在下面的 cmets 之后:

    00000000  63 6f e2 80 8c e2 80 8b  6c 6c 65 63 74 69 6f 6e  |co......llection|
    00000010  20 0a 63 6f e2 80 8c e2  80 8c e2 80 8b e2 80 8b  | .co............|
    00000020  6c 6c 65 63 74 69 6f 6e                           |llection|
    

    【讨论】:

    • 我做到了,但现在它返回 Unable to move 'C:\Users\Admin\AppData\Local\Temp\phpCBCD.tmp' to 'D:\Home\Volodya\Projects\Web\ CollectionSite\site\php\img\collection\usbwebserver.exe'
    • @Poseydon42 您要存储上传文件的路径是什么?文件夹存在吗?
    • D:\Home\Volodya\Projects\Web\CollectionSite\site\php\img\co‌​llection\这个路径存在。
    • @Poseydon42 :似乎co‌​llectionco‌‌​​llection 不一样。如果在文本编辑器中复制上面的两个路径,第一个是 12 个字符长度,第二个是 14 个字符长度。也许是一个特殊的字符...请参阅更新的 anwser。
    • 我尝试将它处理到另一个目录,现在没有任何错误,但目标目录中没有文件。
    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 2011-12-23
    • 2012-05-25
    • 2023-03-11
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多