当前位置: 首页 > 知识库问答 >
问题:

move_uploaded_file()在localhost但在服务器上工作

陶高扬
2023-03-14

以下代码在我的localhost上运行完美,但在我的实时服务器上显示了以下错误

警告:move_uploaded_file(.../uploads/76948893.jpeg):无法打开流:没有此类文件或目录

警告:move_uploaded_file():无法将'/tmp/phppxvRs8'移动到'…/上传/76948893.jpeg'

它所做的很简单,它获取来自 html 表单的数组 [“pictures”] 上的图像,并使用随机数字名称作为文件名将每个图像保存在文件夹“.../uploads/”上,并保留原始扩展名。

有人知道如何让它在我的服务器上工作吗?

   //Image Uploader
    $images=[];
    $directory = '.../uploads/';
    foreach ($_FILES["pictures"]["error"] as $key => $error) {
        $new_file_name = rand (10000000,99999999);
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
       /* echo '<br>';
        echo $directory.$new_file_name.".".substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key], "/")+1);*/

        if(move_uploaded_file($_FILES['pictures']['tmp_name'][$key], 
                            $directory
                            .$new_file_name
                            .".".substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key], "/")+1)))               {
            array_push($images,$new_file_name.".".substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key], "/")+1));
            $images_validator=true;
        }else{
        //Error
        }

    }
}

共有2个答案

越麒
2023-03-14

如果这在您的本地机器上运行,但不是在服务器上运行,我可以马上想到两个简单的答案。1.该文件夹在服务器上不存在,2.有人评论您没有权限写入/读取服务器上的该文件夹……我会检查服务器配置,以确保您的应用程序池或用户对该文件夹有读/写权限

徐奇逸
2023-03-14

这可能有很多原因,请检查以下内容

>

  • 您需要对上传目录的WRITE权限。我想你的本地计算机运行windows

    就像@Darren建议的那样,使用绝对路径。将< code>$directory更改为< code>$directory = getcwd()。上传/';

  •  类似资料:
    • 下面的URL模块正在工作 但无法在服务器上像这样运行它: 为什么?? 我怎样才能像localhost?一样在服务器上正常运行 我使用密码点火器。

    • 我正在为youtube api实现OAuth 2… 公共静态凭据authorize(列表范围,字符串credentialDatastore)引发IOException { } 它在本地工作。从逻辑上讲,我将回调URL更改为http://localhost:8081/CallBack..在本地工作正常,但当我使用公共IP部署到AWS服务器时,它不起作用。 显示地址已被用于8081异常,甚至没有重定向

    • 你好,我有一个我开发的dll。我在使用dll导入的网站中使用此dll。当我通过visual studio运行网站时,一切都正常。但当我用iis运行它时,它没有错误。请参阅所附代码。谢谢在这里输入图像描述

    • 我有一个应用程序,它使用一个在开发环境中工作的数据列表,但在生产环境中返回一个没有查找的空白字段。我想广泛使用datalist,因为它很容易提供一个自动完整的工具,但除非它在生产中工作。 Dev是在Win7下的IE11.0上的MVC VS 2010,在HTML5Test中得分302。产品是服务器2012 R2标准上的IE11.0,报告为Win8.1,在HTML5Test中得分为312分。 经过大量

    • 我正在自学servlet,找到了一些非常好的教程,并在Eclipse Neon EE中取得了巨大成功。(非常基本的servlet,只提供一个简单的静态网页) 在安装Eclipse Neon EE之前,我安装了Tomcat standalone,并对其进行了测试,得到了regulat apache Tomcat页面。我找到的教程还指导我如何在Eclipse中设置tomcat服务器。他们还向我展示了如

    • 问题内容: 我捆绑了一个项目,效果很好。但是,当在路由/ about上单击“刷新”时,它会显示在此服务器上找不到所请求的URL / about。但是,当我在本地主机上从Web服务器上执行此操作时,在刷新和前进/后退按钮上都可以正常工作。我在我的客户端路由中使用react-router。 这是客户端路由,但我对此表示怀疑 我的路线就在那里: 我认为我破坏了APACHE: kkotwal.me.con