我正在写Laravel登记表。表单上载带有验证的用户配置文件图像。此映像应插入数据库中的附件表和PhpStorm中的公用文件夹中。
下面是我做过但根本不起作用的代码。任何帮助,都是高度赞赏。
上载文件控制器:
class UploadFileController extends Controller
{
public function store($request)
{
$attachment = new Attachment();
$attachment->mime = $request->mime;
$attachment->size = $request->size;
$attachment->name = $request->name;
$attachment->original_name = $request->original_name;
$attachment->attachment_type = $request->attachment_type;
$attachment->attachment_id = $request->attachment_id;
$attachment->save();
return $attachment;
}
public function action(Request $request)
{
$validation = Validator::make($request->all(),[
'file' => '
required|image|mimes:jpeg, png, jpg, gif|max:2048'
]);
if($validation->passes())
{
$image = $request->file('file');
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('/files'), $new_name );
return response()->json([
'message' => 'File Uploaded Successfully',
'uploaded_image' => '<img src="/files/'.$new_name.'" class="img-thumbnail" width="300" />',
'class_name' => 'alert-success'
]);
}
else
{
return response()->json([
'message' => $validation->errors()->all(),
'uploaded_image' => '',
'class_name' => 'alert_danger'
]);
}
}
上传模式:
use Illuminate\Database\Eloquent\Model;
class Upload extends Model
{
protected $table = 'attachments';
protected $fillable = ['mime', 'size', 'name', 'original_name'];
}
附件模型:
class Attachment extends Model
{
public function attach()
{
return $this->morphTo('App\User', 'attachable');
}
}
我验证表单的用户控制器:
class UserController extends Controller
protected function getValidator(Request $request)
{
$rules = [
'first_name' => 'required|string|max:50',
'last_name' => 'required|string|max:50',
'email' => 'required|email|unique:users',
'phone' => 'required|numeric', //phone should be numeric
'name' => 'required',
'country' => 'required',
'address' => 'required',
'image' => 'required',
];
if(request('country') == $TajikistanID) {
$rules['province'] = 'required';
} else {
$rules['city'] = 'required';
}
return Validator::make($request->all(), $rules);
}
这是登记表:
<form action="{{ route('users.store') }}" method="POST" enctype="multipart/form-data">
{{csrf_field()}} //rest of input fields
<input type="file" id="image" name="image" value="" class="form-control" />
<input type="hidden" name="_token" value="{{ csrf_token()" />
</form>
文件上载输入字段的名称
属性设置为图像
,但在代码中,您将文件
用作值。由于此原因,laravel无法访问上载的图像。
您需要将文件上传输入字段的name
属性更改为file
,如下所示:
<input type="file" id="image" name="file" value="" class="form-control" />
或者您不更改file upload输入元素的名称,而是更改PHP代码,如下所示:
// Validation
$validation = Validator::make($request->all(),[
'image' => 'required|image|mimes:jpeg, png, jpg, gif|max:2048'
]);
// Upload
$image = $request->file('image');
代码提示:不要使用HTML元素作为Api的响应。那很难看,也没用。只需返回图像的路径,如下所示:
return response()->json([
'message' => 'File Uploaded Successfully',
'uploaded_image' => '/files/' . $new_name,
'class_name' => 'alert-success'
]);
超文本标记语言是前端的一部分,而不是其他API。
问题内容: 我有一个UIImageView,它允许用户放置并保存图像,直到可以保存为止。问题是,我不知道如何实际保存和检索放置在视图中的图像。 我已经将图像检索并放置在UIImageView中,如下所示: 它在我的UIImageView中显示选定的图像就很好了,但是我不知道如何保存它。我将视图的所有其他部分(主要是UITextfield)保存在Core Data中。我已经搜索了很多,然后尝试了很多
当我试图通过Maven部署插件将JHipster应用程序部署到Nexus时,我得到以下错误。 无法执行目标组织。阿帕奇。专家插件:maven deploy插件:2.7:project profiletoolservice上的部署(默认部署):未能部署工件:无法传输工件io。众码。prf:profiletoolservice:war:1.0.0-20180209.081617-4从/到回购。众码。i
我是ReactJS的新手,我想在组件中导入图像。这些图像在公用文件夹中,我不知道如何从react组件访问该文件夹。 有什么想法吗? 编辑 我想在bottom.js或header.js中导入一个图像 结构文件夹为: 我不使用WebPack。我应该吗? 编辑2 我想使用webpack来加载图像和其他资产。因此,在我的配置文件夹中,我有下一个文件: 我需要在哪里添加图像的路径,以及如何添加? 谢谢
我在我的Android应用程序中使用滑翔进行图像加载,以避免任何崩溃,我正在加载带有应用程序上下文的图像。这会对应用程序和内存的性能产生什么影响?
我正在尝试访问src文件夹中的js文件中的公用文件夹中的映像?更具体地说,我正在设计一个div容器。我想将其backgroundImage属性设置为公用文件夹中的图像文件。我该怎么做呢?感谢您的回复!
为了开始使用react,我在我的节点应用程序中添加了Webpack和Babel。我将所有脚本导入一个脚本,并将其设置为webpack.config.js中的条目,如下所示: 当启动webpack-dev-server时,脚本无法找到位于我的公共文件夹中的图像(该文件夹被指定为服务器index.js中的静态文件夹)。我试着在输出中添加公共路径:“/公共/”,但它甚至找不到app.js了。在Webpa