Сохранить изображение (из JavaScript) в общей папке (через php) - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь использовать этот пакет https://vuejsexamples.com/a-beautiful-vue-component-for-image-cropping-and-uploading/ Но потом мне интересно, как сохранить мое изображение в папке.

Я пытаюсь сделать это в php, чтобы я мог легко использоватьмаршрут потом, но с JS все может быть в порядке, если это проще.

public function uploadfile(Request $request){
    $img = $request->img;
    $newlocation = $request->newlocation;
    $filename = $request->filename;

    $img = str_replace('data:image/png;base64,', '', $request->img); //I tried with and without this

    return file_put_contents ($newlocation . "/" . $filename , $img );
}

Я на самом деле получаю изображение в своей общедоступной папке, но содержимое абсолютно не то, что я хочу :) Изображение.jpg содержит текст C: \ Users \ usr \ AppData \ Local \ Temp \ phpEE72.tmp

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Я нашел эту ссылку очень полезной при загрузке изображений: https://hdtuto.com/article/laravel-57-image-upload-with-validation-example

В моем контроллере после проверки у меня есть что-то подобное, что позволяет использовать различные типы файлов изображений, такие как png и jpg:

$name = $request->input('name');
$getimageName = $name.'.'.$request->image->getClientOriginalExtension();
$request->image->move(public_path('filelocation'), $getimageName);

И в моем файле filesystems.php:

'disks' = > [
    'filelocation' => [
        'driver' => 'local',
        'root' => public_path().'/foldername',
        'url' => env('APP_URL').'/public/foldername',
        'visibility' => 'public',
    ]
]
0 голосов
/ 06 июня 2019

Это строка имени файла.За кулисами PHP обрабатывает все файлы, загруженные на сервер, помещая во временный каталог.Вам решать переместить это и обработать это.Все, что вам нужно сделать, это сначала прочитать содержимое файла:

file_put_contents ($newlocation . "/" . $filename , file_get_contents($img) )

без вашего str_replace.

Вы должны рассмотреть возможность сделать это более Laravel способом, рекомендованным в https://laravel.com/docs/5.8/filesystem#file-uploads но чтобы ответить на ближайший вопрос, все что вам нужно, если file_get_contents.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...