我使用Dropzone来处理Symfony2项目中的文件上传。
如果我上传1mb以下的文件,但是当我上传超过1mb的文件时它会正常工作,但会引发异常。
我认为问题出在Dropzone的maxFilesize
配置上,但事实并非如此。它正在工作,因为它显示一条消息,文件大小超过了我设置的最大大小。
我的表格:
<form id="quickUpload" action="{{ path('upload_process') }}" method="put" enctype="multipart/form-data" class="dropzone">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</form>
使用Javascript:
Dropzone.options.quickUpload = {
addRemoveLinks: true,
dictDefaultMessage: "Drop files to upload (or click)",
maxFilesize: 5,
init: function () {
this.on("success", function (file, response) {
file.serverId = response.id;
});
this.on("removedfile", function (file) {
if (!file.serverId) {
return;
}
var url = "{{ path("delete_upload") }}";
$.ajax({
url: url,
type: 'POST',
data: {id: file.serverId},
dataType: 'json',
success: function (data) {
console.log("File Deleted");
},
error: function () {
console.log("File Delete Error");
}
});
});
}
}
控制器:
/**
* @Route("/upload_process", name="upload_process")
* @Method("PUT")
*/
public function uploadProcessAction(Request $request) {
if ($request->isXmlHttpRequest()) {
$files = $request->files;
$em = $this->getDoctrine()->getManager();
$ids = [];
foreach ($files as $file) {
$document = new Document();
$document->setUploader($this->getUser())
->setFile($file);
$em->persist($document);
$ids[] = $document;
}
$em->flush();
return new JsonResponse(['id' => $ids[0]->getId()]);
}
}
答案 0 :(得分:1)
最后修好了。我只需要更改upload_max_filesize
文件中php.ini
的值。我保存了文件,重新启动了XAMPP并使其正常工作。