2
我使用Symfony2,我想使用BlueImp插件basic setup。Blueimp jQuery文件上傳和symfony2:問題與自定義上傳處理程序
其實,我有一個表單,您可以在其中載入3張圖片和一首歌曲(這是一個藝術家註冊)。
作爲一個開始,我嘗試爲一張圖片實現插件。但是當我在我的輸入「圖片1」中選擇一個文件時,什麼都不會發生。什麼是錯誤的?
<html>
<head>
<script type="text/javascript" src="{{ asset('bundles/mybundle/js/jquery-file-upload/js/vendor/jquery.ui.widget.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/mybundle/js/jquery-file-upload/js/jquery.iframe-transport.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/mybundle/js/jquery-file-upload/js/jquery.fileupload.js') }}"></script>
</head>
<form id="myForm" action="{{ path('MyBundle_artist_new') }}" {{ form_enctype(form) }} method="post" novalidate>
<div class="field">
{{ form_label(form.picture1 "Picture 1") }}
{{ form_widget(form.picture1) }}
</div>
<input type="submit" value="Register"/>
</form>
<script type="text/javascript">
$(document).ready(function(){
$('#myform_picture1').fileupload(
{
dataType: 'json',
url:'{{path('MyBundle_ajax_upload_picture') }}',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
}
});
});
</script>
這裏是上傳處理(該URL的行動{{路徑( 'MyBundle_ajax_upload_picture')}}:
<?php
public function ajaxUploadPicture()
{
$request = $this->get('request');
$uploaded_file = $request->files->get('myform_picture1');
if ($uploaded_file)
{
$picture1 = $this->processImage($uploaded_file);
$picture1->setPath('pictures/artist/' . $picture1);
$em->persist($picture1);
$em->flush();
$response = 'success';
}
else $response= 'error';
$response = new Response(json_encode(array('response'=>$response)));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public static function processImage(UploadedFile $uploaded_file)
{
$path = 'pictures/artist/';
$uploaded_file_info = pathinfo($uploaded_file->getClientOriginalName());
$filename = uniqid() . "." .$uploaded_file_info['extension'];
$uploaded_file->move($path, $filename);
return $filename;
}
感謝您的答覆,但我一直都在我的螢火控制檯500內部服務器錯誤,當我用這個和$ uploaded_file = $ request-> files-> get('foo',array(),true);不幸的是它不工作。 – Reveclair 2013-02-14 11:42:37
請使用app_dev.php主控制器並檢查螢火蟲導致500錯誤的原因 – l3l0 2013-02-14 12:43:48
好的,我找到了問題,感謝您的幫助!這很愚蠢,但我忘了在方法ajaxPictureUpload的末尾添加「Action」這個詞。 – Reveclair 2013-02-14 13:35:55