我試圖使用Play來實現SWFUpload!框架和一臺Mac。 使用Mac時,出現302錯誤(上傳錯誤:302)。我認爲,這似乎來自通過獲取Play!的上傳頁面而發生的重定向。框架(因爲它是從路線文件翻譯的?)。在Playframework和Mac上使用swfupload
它在Windows上的IE上正常工作。
我搜索了很多,並閱讀了很多,但沒有找到,如果有一個特定的解決方案。有沒有關於如何實現這一點的建議,或者對於另一個簡單的實現文件上傳器(對於大領域,有進展)的任何建議?
編輯:
我曾經嘗試都Safari和Firefox在我的MacBook和收益都作爲狀態的302上傳錯誤。我在Windows上再次嘗試使用IE,它工作正常。
在HTML(樣式表)代碼:
#{extends 'main.html' /}
#{set title: 'Upload Media File' /}
<script type="text/javascript" src="/public/swfupload/swfupload.js"></script>
<script type="text/javascript" src="/public/swfupload/swfupload.queue.js"></script>
<script type="text/javascript" src="/public/swfupload/fileprogress.js"></script>
<script type="text/javascript" src="/public/swfupload/handlers.js"></script>
<script type="text/javascript">
var swfu;
window.onload = function() {
var settings = {
flash_url : "/public/swfupload/swfupload.swf",
flash9_url : "/public/swfupload/swfupload_fp9.swf",
upload_url: "doUpload",
file_post_name: "data",
post_params: {"article.id" : "${article?.id}"},
file_size_limit : "1000 MB",
file_types : "*.*",
file_types_description : "All Files",
file_upload_limit : 1,
file_queue_limit : 0,
custom_settings : {
progressTarget : "fsUploadProgress",
cancelButtonId : "btnCancel"
},
debug: false,
// Button settings
button_image_url: "/public/swfupload/TestImageNoText_65x29.png",
button_width: "65",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span>Start</span>',
button_text_style: ".theFont { font-size: 16; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
swfupload_preload_handler : preLoad,
swfupload_load_failed_handler : loadFailed,
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
queue_complete_handler : queueComplete // Queue plugin event
};
swfu = new SWFUpload(settings);
};
</script>
<h2 class="title">#{get 'title' /}</h2>
<div style="clear: both;"> </div>
#{form @index(), id:'uploadForm', enctype:'multipart/form-data'}
<div class="entity">
<p>This page demonstrates a simple usage of SWFUpload. It uses the Queue Plugin to simplify uploading or cancelling all queued files.</p>
<div class="fieldset flash" id="fsUploadProgress">
<span class="legend">Upload Queue</span>
</div>
<div id="divStatus">0 Files Uploaded</div>
<div>
<span id="spanButtonPlaceHolder"></span>
<input id="btnCancel" type="button" value="Cancel All Uploads" onclick="swfu.cancelQueue();" disabled="disabled" style="margin-left: 2px; font-size: 8pt; height: 29px;" />
</div>
</div>
#{/form}
在路由文件(Articles.upload是屏幕時,doUpload通過SWFUpload的調用)的條目:
GET /admin/articles/{id}/upload Articles.upload
POST /admin/articles/doUpload Articles.doUpload
EDIT 2: 我也嘗試了Uploadify,它會返回相同的錯誤。有沒有人知道Play的解決方法!框架或上傳者,與Play一起工作!
你有沒有在Mac上試過,但使用不同的瀏覽器?處理文件上傳的代碼是什麼? – Samuel
我添加了樣式表的代碼,並且在Mac上也檢查了firefox,但沒有喜悅(我確實有最新的Flash PLayer(11.4) –