流明文件上传

时间:2017-05-22 09:09:59

标签: php laravel api file lumen

我有以下代码用于文件上传:

$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
}

这里缺少什么?

3 个答案:

答案 0 :(得分:4)

试试这个

        $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()函数用于图像的唯一文件名

答案 1 :(得分:1)

  

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

查看destionation的斜线... windows上的目录分隔符是“\”

文件名中也不允许“:”

答案 2 :(得分:0)

使用ST_DISTANCE代替/或\,这将自动为您的平台获取独立的目录分隔符。

示例

DIRECTORY_SEPARATOR

参考:php.net - Predefined Constants