我正在尝试使用 vue.js、slim 4 和 vuetify 上传文件,但我无法在后端访问 formData。
这是我的 vuetify 表单:
<v-form>
<v-row>
<v-col cols="12" sm="12" md="12">
<v-file-input v-model="selectedFile" multiple show-size outlined label="File input"></v-file-input>
</v-col>
<v-col cols="12" sm="12" md="12">
<v-textarea label="Description"></v-textarea>
</v-col>
</v-row>
</v-form>
我在方法中的上传功能:
uploadFile: function(){
console.log(this.selectedFile)
var self = this
const formData = new FormData()
let config = {
header : {
'Content-Type' : 'multipart/form-data'
}
}
formData.append('file', this.selectedFile)
axios.post('/file/upload', formData, config)
.then(response => {
console.log(response)
})
}
这是我的后端控制器:
class FileController extends BaseController {
public function create(Request $request, Response $response) {
$directory = $this->container->get('upload_directory');
$uploadedFiles = $request->getUploadedFiles();
foreach ($uploadedFiles['file'] as $uploadedFile) {
if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
$filename = Upload::moveUploadedFile($directory, $uploadedFile);
$response->getBody()->write('Uploaded: ' . $filename . '<br/>');
}
}
return $response;
}
}
这是我得到的响应,我得到状态 200,好的,但是当它应该被上传时数据是空的,我是如何在我的后端控制器中建立它的。
对象配置:{url:“/file/upload”,方法:“post”,数据:FormData,标题:{...},transformRequest:Array(1),...}数据:“”标题:{cache-control:“ no-store, no-cache, must-revalidate”,连接:“Keep-Alive”,内容长度:“0”,内容类型:“text/html; charset=UTF-8”,日期:“星期三, 2020 年 10 月 14 日 18:47:47 GMT",...} 请求:XMLHttpRequest {readyState:4,超时:0,withCredentials:false,上传:XMLHttpRequestUpload,onreadystatechange:ƒ,...} 状态:200 statusText:“OK” 原型:对象