在localhost,strage路径上载的Laravel图像

时间:2016-10-14 11:18:46

标签: laravel

我有一个项目,我正在努力并面临一个小问题。我将在下面分享一些代码,让你们知道我在哪里。

这是我在控制器上的方法:

if ($request->hasFile('image')) {
   $image = $request->file('image');
   $filename = time() . '.' . $image->getClientOriginalExtension();
   Image::make($image)->resize(200, 200)->save( public_path('/images/' . $filename ) );

   $editors->image = $filename;
}

这是我对视图

的输入
<div class="form-group">
     <label>Editor avatar</label>
     <input type="file" name="image">
</div>

当我提交表单时,即使没有必要的错误消息,一切都还可以。 但是当我进入公共/图像里面的文件夹时,那里就没有了。

如果我去我的数据库,我会收到图片的这条路径:

C:\用户\用户\应用程序数据\本地\ TEMP \ php840D.tmp

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

检查您的上传文件夹(即“图片”)权限。应该有775的许可。

除此之外,你的代码很好。

注意:这应该让apache和FTP用户能够写入文件夹中的文件,但不要让其他人修改它们。

修改

检查以下几点:

  
      
  1. 您无权查看该文件。
  2.   
  3. 使用chmod(“/ path / to / file.ext”,0755);添加ftp用户的查看权限。
  4.   
  5. 您将文件移动到了不存储文件的位置。的/ dev / null的
  6.   
  7. 你正在寻找错误的文件夹。你使用了完整的路径吗?
  8.   

移动后不久将删除该文件。

注意:如果您在远程服务器上工作,那么上传的文件可能仍然在服务器队列中,因此您需要刷新并检查它。

答案 1 :(得分:0)

尝试这样做

if ($request->hasFile('image')) {
  $image = $request->file('image');
  $filename = time() . '.' . $image->getClientOriginalExtension();
  $upload_success = Input::file('image')->move($destinationPath, $filename);
  $image = Image::make("uploads/$filename")->resize(200, 200)->save();
  if( $upload_success ) {
    $editors->image = $filename;
  }
  else
  {
    $editors->image = 'unknown.png';
  }   
}