簡體   English   中英

流明文件上傳

[英]Lumen file upload

我有以下文件上傳代碼:

$picName = $request->file('cnicFrontUrl')->getClientOriginalName();
$picName = Carbon::now() . $picName;
$destinationPath = '/uploads/user_files/cnic';
$request->file('cnicFrontUrl')->move($destinationPath, $picName);

在我的公共文件夾中,我有uploads/user_files/cnic

我收到的異常:

{
  "message": "Could not move the file \"D:\\xampp\\tmp\\php2D1C.tmp\" to \"uploads/user_files/cnic\\2017-05-22 09:06:15cars.png\" ()",
  "status_code": 500
}

這里缺少什么?

嘗試這個

        $picName = $request->file('image')->getClientOriginalName();
        $picName = uniqid() . '_' . $picName;
        $path = 'uploads' . DIRECTORY_SEPARATOR . 'user_files' . DIRECTORY_SEPARATOR . 'cnic' . DIRECTORY_SEPARATOR;
        $destinationPath = public_path($path); // upload path
        File::makeDirectory($destinationPath, 0777, true, true);
        $request->file('image')->move($destinationPath, $picName);

我們不能像這樣設置文件名

2017-05-22 09:06:15cars.png

所以使用 uniqid() 函數作為圖像的唯一文件名

“上傳/user_files/cnic\\2017-05-22 09:06:15cars.png\\”

問題是目標斜線。 Windows 上的目錄分隔符是\\

此外,文件名中不允許使用:

使用DIRECTORY_SEPARATOR而不是 / 或 \\,這將自動為您的平台獲得獨立的目錄分隔符。

例子

<?php

// will output "../public/logo.png" in unix or "..\\public\\logo.png"
$path = ".." . DIRECTORY_SEPARATOR . "public" . DIRECTORY_SEPARATOR . "logo.png"
echo $path;

參考: php.net - 預定義常量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM