laravel - 正确地将图像上传到数据库。Laravel vue.js
问题描述
我正在尝试将图像上传到数据库,但无论我尝试什么,我都会收到此错误
在 null 上调用成员函数 getClientOriginalExtension()
或者它说它保存正确但它没有保存任何东西
以下代码位于要上传图片的表单的提交函数中的 vue.js 文件中。这就是我试图将文件发送到控制器的内容
这给了我上面的错误
if (this.form.file && this.form.imageUrl) {
this.form.file = this.form.imageUrl;
} else {
}
var data = Converter.objectToFormData(this.form);
this.$refs.form.validate((valid) => {
if (valid) {
this.loading = true;
if (!this.form.id) {
//send code
} else {
//send updated
}
}
这也给了我上面的错误
let data = Object.assign({}, this.form);
this.$refs.form.validate((valid) => {
if (valid) {
this.loading = true;
if (!this.form.id) {
//send code
} else {
//send updated
}
}
这不会给我任何错误,但什么都没有保存
var data = new FormData();
data.append('question', this.form.question);
data.append('instruction', this.form.instruction);
data.append('survey_section_id', this.form.survey_section_id);
data.append('response_type_id', this.form.response_type_id);
data.append('questionOptions', this.form.questionOptions);
data.append('rank', this.form.rank);
data.append('num', this.form.num);
data.append('show_text', this.form.show_text);
data.append('file', this.form.file);
this.$refs.form.validate((valid) => {
if (valid) {
this.loading = true;
if (!this.form.id) {
//send code
} else {
//send updated
}
}
这是触发错误的控制器中的代码
$destino = 'img/questions';
$image = $request->has('file');
if ($image) {
$imageFile = $request->file('file');
$filename = Uuid::generate(4)->string . '.' . $imageFile->getClientOriginalExtension();
$imageFile->move($destino, $filename);
$preg->image = $destino . '/' . $filename;
}
如果我dd($imageFile)
总是返回null或false,我的猜测是文件没有作为文件发送但我不确定我做错了什么或为什么会发生这种情况,$image
返回true所以它确实进入了if 语句。
解决方案
假设您已enctype="multipart/form-data"
输入表单,laravel 6 中出现错误,迫使我在获取图像之前执行此操作:
$destino = 'img/questions';
$image = $request->has('file');
if ($image) {
$size = $request->file('file')->getSize();
$imageFile = $request->file('file');
$filename = Uuid::generate(4)->string . '.' . $imageFile->getClientOriginalExtension();
$imageFile->move($destino, $filename);
$preg->image = $destino . '/' . $filename;
}
我不确定它是否给了我同样的错误,但如果你之前没有得到大小,文件总是空的,
希望能帮助到你!
推荐阅读
- python - django.utils.translation 不翻译,但 python import gettext 翻译
- foreach - 模块:S3 存储桶 for_each,每个存储桶具有不同的策略
- firebase - 用于比较两个数据库并防止重复的 Firestore 安全规则
- javascript - ReferenceError: axios is not defined..在heroku部署中但不在本地
- scipy - Scipy稀疏矩阵维度问题
- html - jquery如何使用onclick
- typescript - 如何使用与其在 TypeScript 中的键匹配的值键入嵌套对象?
- r - 替换R中多列中的多个字符
- flutter - Cupertino Sliverapp 栏不滚动
- java - 使用 ContentTypeDelegatingMessageConverter 在 RabbitListener Spring AMQP 中的内容类型不同