打开文件(uploadedimages/)失败:无法打开流:目录不存在

4

我正在跟随一个教程学习如何从安卓上传图片到服务器,并且我在服务器端使用 PHP,以下是代码:

<?php
    error_get_last();
    chmod("./uploadedimages/", 777);
    // Get image string posted from Android App
    $base=$_REQUEST['image'];
    // Get file name posted from Android App
    $filename = $_REQUEST['filename'];
    // Decode Image
    $binary=base64_decode($base);
    header('Content-Type: bitmap; charset=utf-8');
    // Images will be saved under 'www/imgupload/uplodedimages' folder
    $file = fopen('uploadedimages/'.$filename, 'wb');
    // Create File
    fwrite($file, $binary);
    fclose($file);
    echo 'Image upload complete, Please check your php file directory';
?>

当我尝试运行时,它显示以下错误:

fopen(uploadedimages/):无法打开流:在...中没有此类文件或目录

fwrite()期望参数1为资源,但给出了布尔值...

fclose()期望参数1为资源,但给出了布尔值...

我很新手,希望得到帮助(我从互联网上找到了一些答案,但对我没用)。

经常会遇到这个错误,为了快速排除故障,请按照以下步骤操作:https://dev59.com/LVoV5IYBdhLWcg3wL8Ww#36577021 - Vic Seedoubleyew
2个回答

3
你需要在fopen()中提供文件的完整路径。
$file = fopen($_SERVER['DOCUMENT_ROOT'].'/uploadedimages/'.$filename, 'wb');

同时确保您拥有在服务器上创建文件所需的正确权限

由于文件首先没有被创建,因此当您尝试使用fwrite()fclose()时会出现错误。


实际上,我得到了相同的错误。我创建了文件uploadedimages。 它存在。我怎样才能确保我拥有在服务器上创建文件的正确权限? - Alex41
你使用哪个服务器?Linux 还是 Windows? - Abhinav
我正在使用集成在Windows 8的WAMP中的Apache服务器。 - Alex41
现在有一个针对这个常见错误的故障排除清单,可以在 stackoverflow.com/a/36577021/2873507 找到。 - Vic Seedoubleyew

0

failed to open stream 错误发生在 PHP 无法找到您指定的路径时。此外,我认为您没有指定文件扩展名,因此请使用类似于 fopen('uploadedimages/'.$filename.'.png', 'w+') 的东西。扩展名可以是您喜欢的选择。


现在有一个针对这个常见错误的故障排除清单,网址为: stackoverflow.com/a/36577021/2873507 - Vic Seedoubleyew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接