繁体   English   中英

图片上传失败 Laravel 和 Windows Server 2019

Failed image upload Laravel and Windows Server 2019

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在开发一个 Laravel 应用程序,它在本地运行良好,但是当部署到 Windows Server 2019 时,图像上传功能失败并显示以下堆栈跟踪。 我正在使用 Laravel Spatie 媒体库来处理图像上传。 服务器 PHP 版本为 7.4。 我使用最新版本的 IIS。

    if ($request->exists("product_logo")) {
        $temp_file = $request->file('product_logo');

        if (getimagesize($temp_file)) {
            $allowedMimes = ['image/png', 'image/jpg', 'image/jpeg'];
            $product_logo_mime = $temp_file->getMimeType();

            if (in_array($product_logo_mime, $allowedMimes)) {
                $product->clearMediaCollection();
                $product->addMediaFromRequest('product_logo')->toMediaCollection();
            }
        }
    }
RuntimeException: The file  cannot be opened. in file C:\PROJECT_125\vendor\nyholm\psr7\src\Factory\Psr17Factory.php on line 44

#0 C:\PROJECT_125\vendor\symfony\psr-http-message-bridge\Factory\PsrHttpFactory.php(114): Nyholm\Psr7\Factory\Psr17Factory->createStreamFromFile()
#1 C:\PROJECT_125\vendor\symfony\psr-http-message-bridge\Factory\PsrHttpFactory.php(96): Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory->createUploadedFile()
#2 C:\PROJECT_125\vendor\symfony\psr-http-message-bridge\Factory\PsrHttpFactory.php(68): Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory->getFiles()
#3 C:\PROJECT_125\vendor\laravel\passport\src\Guards\TokenGuard.php(201): Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory->createRequest()
#4 C:\PROJECT_125\vendor\laravel\passport\src\Guards\TokenGuard.php(147): Laravel\Passport\Guards\TokenGuard->getPsrRequestViaBearerToken()
#5 C:\PROJECT_125\vendor\laravel\passport\src\Guards\TokenGuard.php(110): Laravel\Passport\Guards\TokenGuard->authenticateViaBearerToken()
#6 C:\PROJECT_125\vendor\laravel\passport\src\PassportServiceProvider.php(297): Laravel\Passport\Guards\TokenGuard->user()
#7 [internal function]: Laravel\Passport\PassportServiceProvider->Laravel\Passport\{closure}()
#8 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Auth\RequestGuard.php(58): call_user_func()
#9 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Auth\GuardHelpers.php(60): Illuminate\Auth\RequestGuard->user()
#10 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(63): Illuminate\Auth\RequestGuard->check()
#11 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(42): Illuminate\Auth\Middleware\Authenticate->authenticate()
#12 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Auth\Middleware\Authenticate->handle()
#13 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#14 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Routing\Router.php(693): Illuminate\Pipeline\Pipeline->then()
#15 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Routing\Router.php(668): Illuminate\Routing\Router->runRouteWithinStack()
#16 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Routing\Router.php(634): Illuminate\Routing\Router->runRoute()
#17 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Routing\Router.php(623): Illuminate\Routing\Router->dispatchToRoute()
#18 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(166): Illuminate\Routing\Router->dispatch()
#19 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#20 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#21 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#22 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#23 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#24 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#25 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#26 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance.php(87): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#28 C:\PROJECT_125\vendor\fruitcake\laravel-cors\src\HandleCors.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#29 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fruitcake\Cors\HandleCors->handle()
#30 C:\PROJECT_125\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#32 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#34 C:\PROJECT_125\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#35 C:\inetpub\PROJECT_125\index.php(52): Illuminate\Foundation\Http\Kernel->handle()
#36 {main}

 

这是我的设置:

"require": {
    "php": "^7.3|^8.0",
    "ext-json": "*",
    "fideloper/proxy": "^4.4",
    "fruitcake/laravel-cors": "^2.0",
    "guzzlehttp/guzzle": "^7.2",
    "laravel/cashier": "^12.6",
    "laravel/framework": "^8.12",
    "laravel/passport": "^10.0",
    "laravel/tinker": "^2.5",
    "nyholm/psr7": "^1.3",
    "pusher/pusher-php-server": "^4.1",
    "spatie/laravel-medialibrary": "^9.0.0",
    "spatie/laravel-permission": "^3.17",
    "stripe/stripe-php": "^7.67",
    "symfony/psr-http-message-bridge": "^2.0",
    "twilio/sdk": "^6.14"
},

有什么想法吗? 我搜索了所有论坛,但没有找到答案... :(

1 个回复

我在过去没有正确设置文件权限时遇到了这个问题。 请记住,您的存储文件夹位于网站公共根目录之上。 检查 IIS 和 PHP 是否都有写入此文件夹的权限。

这可能会有所帮助: 在 IIS 7 上向 PHP 添加写入权限

1 Laravel图片上传失败

我正在使用Laravel 5.4应用程序,尝试上传的图片没有移动到磁盘上。 你可以帮帮我吗 ? 我的表格: 控制器: 我的磁盘没问题,Laravel提供了文件名,但是上传无法正常工作。 ...

3 Laravel 5图片上传失败

我正在使用laravel 5.7,当我尝试上传图像并返回$ request时,我可以看到该图像已上传,但是当我尝试将文件存储在公共文件夹中时,它表明该图像无法上传。 问题是什么。 我在stackoverflow中搜索了解决方案。 我有很多。 但是他们都没有为我工作。 我的商店方法代 ...

4 图片上传失败(图片转换Laravel)

我正在使用图像干预包调整图像大小。 调整大小后,我已经成功上传了许多文件。 但是现在不起作用了。 每次我尝试上传图片时,都会显示错误“图片上传失败”。 我也增加了配置文件中的文件大小,但没有解决问题。 我的控制器: 我的HTML: 我不知道实际的问题是什么。 我已 ...

5 Windows 2019 Server的AspUpload

我正在使用Plesk版本18.0.32。 我的服务器是Windows 2019服务器。 我可以为此服务器安装Persist ASPUpload插件吗? 我了解我无法在此处安装asp。 我想获取信息。 ...

2021-01-11 07:14:27 0 17   plesk
8 在Laravel注册中上传个人资料图片失败

我想在注册时上传个人资料图片 在我必须注册用户之前,此后,我可以将默认的user.jpg更改为我自己的个人资料图片 但现在我想在注册时上传我的个人资料照片 这是我要上传图片的部分视图: 这是我的控制器: } 这是我的迁移文件: 这是我的user.p ...

9 将图片上传到laravel

我尝试获取$request->image->getClientOriginalName()但返回 “在字符串上调用成员函数getClientOriginalName()” 当我调用$request->image它会在磁盘上返回图像名称的字符串,如picture ...

10 Laravel 图片上传太慢

我正在使用 laravel 干预包来调整图像大小。 但是在实时服务器中发布带有图像的帖子时速度非常慢。 我正在使用下面的代码来处理图像并上传。 我一次上传 5 张图片。 我可以在上传前使用 Javascript 调整图像大小吗? 我没有使用 JS 进行上传,但我使用 js 进行预览缩略图图像和删除按 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM