为了账号安全,请及时绑定邮箱和手机立即绑定

“无法将图像数据写入路径” - 拉拉维尔图像干预

“无法将图像数据写入路径” - 拉拉维尔图像干预

PHP
潇湘沐 2022-09-12 09:15:32
无法将图像数据写入路径(拉拉维尔)我无法将任何内容保存到 Laravel 项目中的存储目录中,并收到以下错误:在过去的三周里,我一直试图找出为什么我不能在没有运气的情况下将图像保存到文件夹中。我已经搜索了堆栈溢出,并得出结论,这可能是由于我的Docker映像。如果可能的话,我很乐意使用我的自定义图像,但要让它们正常工作。这是我的设置:StorageLaravel泊坞文件(基本映像)ARG VERSION=7.4FROM php:${VERSION}-fpm-alpine# PHP_CPPFLAGS are used by the docker-php-ext-* scriptsENV PHP_CPPFLAGS="$PHP_CPPFLAGS"# Install zip for csv stuff# hadolint ignore=DL3018RUN apk add --no-cache \    libzip-dev \    zip \&& docker-php-ext-install zip \&& apk del libzip-dev# Install gd for image stuff# hadolint ignore=DL3018RUN apk add --no-cache libpng libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev libxpm-dev \    && docker-php-ext-install gd \    && apk del libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev libxpm-dev# Install Nginx & PHP packages and extensions# hadolint ignore=DL3018RUN apk add --no-cache \    # for PHP/Laravel    git \    icu-dev \    msmtp \    nginx \    unzip \    # zip \    && mkdir -p /run/nginx \    && docker-php-ext-install \        pdo_mysql \        opcache \    && { \        echo 'opcache.memory_consumption=128'; \        echo 'opcache.interned_strings_buffer=8'; \        echo 'opcache.max_accelerated_files=4000'; \        echo 'opcache.revalidate_freq=2'; \        echo 'opcache.fast_shutdown=1'; \        echo 'opcache.enable_cli=1'; \    } > /usr/local/etc/php/conf.d/php-opocache-cfg.ini \    && apk del icu-devCOPY /config/nginx.conf /etc/nginx/conf.d/default.confCOPY /config/msmtprc /etc/msmtprcCOPY /scripts/start.sh /etc/start.shCOPY --chown=www-data:www-data src/ /var/www/htmlWORKDIR /var/www/htmlEXPOSE 80 443ENTRYPOINT ["/etc/start.sh"]泊坞文件(项目,引用上面的多克文件 ^)FROM justintime50/nginx-php:dev # the dockerfile aboveCOPY --chown=www-data:www-data ./src /var/www/htmlCOPY nginx.conf /etc/nginx/conf.d/default.confRUN php composer.phar install -q --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist \    && chmod -R 775 storage \    && php artisan storage:link \    && chmod -R 775 bootstrap/cache
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

我不记得确切的修复程序,但我相信我滥用了.以下是更正后的 PHP 代码:storage_path


    public function uploadPostImage(Request $request)

    {

        $request->validate([

            'upload_image' => 'required|image|mimes:jpeg,jpg,png|max:2048',

        ]);

        $id = mt_rand(100000000000, 999999999999); # TODO: This is hacky, fix down the road


        if (!is_dir(storage_path("app/public/post-images"))) {

            mkdir(storage_path("app/public/post-images"), 0775, true);

        }


        // Upload Avatar (IMAGE INTERVENTION - LARAVEL)

        Image::make($request->file("upload_image"))->save(storage_path("app/public/post-images/".$id.".png"));


        session()->flash("message", "Image uploaded successfully.");

        return redirect()->back();

    }

我使用了相同的 Docker 映像和 Docker 撰写文件,这意味着它必须已通过正确使用进行修复。storage_path


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信