2012-12-12 151 views
1

我試圖在MVC3中創建一個上傳控件。使用uploadify上傳圖片時出現HTTP錯誤405

起初我試過使用javascript和HTML5來創建上傳控件,但這不適用於任何IE版本。所以,我已經移動到這個Flash版本的uploadify

我得到HTTP錯誤:405上傳

這裏的時候是我在javascript代碼爲uploadify

$(function() { 
     $('#file_upload').uploadify({ 
      debug:true, 
      'swf': '/Content/uploadify/uploadify.swf', 
      'uploader': '/Content/uploadify/uploadify.php', 
      'cancelImg': '/Images/uploadify-cancel.png', 
      'script': '/Home/Uploadify', 
      'folder': '/Content/uploads', 
      auto: true 

     }); 
    }); 

我甚至跟debug: true想看看發生了什麼出了問題,但我不能沒有得到什麼錯誤。

這裏是我的輸出與調試:

---SWFUpload Instance Info--- 
Version: 2.2.0 2009-03-25 
Movie Name: SWFUpload_0 
Settings: 
    upload_url:    /Content/uploadify/uploadify.php 
    flash_url:    /Content/uploadify/uploadify.swf?preventswfcaching=1355289873808 
    use_query_string:   false 
    requeue_on_error:   false 
    http_success:    
    assume_success_timeout: 30 
    file_post_name:   Filedata 
    post_params:    [object Object] 
    file_types:    *.* 
    file_types_description: All Files 
    file_size_limit:   0 
    file_upload_limit:  0 
    file_queue_limit:   999 
    debug:     true 
    prevent_swf_caching:  true 
    button_placeholder_id: file_upload 
    button_placeholder:  Not Set 
    button_image_url:  /
    button_width:    120 
    button_height:   30 
    button_text:    
    button_text_style:  color: #000000; font-size: 16pt; 
    button_text_top_padding: 0 
    button_text_left_padding: 0 
    button_action:   -110 
    button_disabled:   false 
    custom_settings:   [object Object] 
Event Handlers: 
    swfupload_loaded_handler assigned: false 
    file_dialog_start_handler assigned: true 
    file_queued_handler assigned:  true 
    file_queue_error_handler assigned: true 
    upload_start_handler assigned:  true 
    upload_progress_handler assigned: true 
    upload_error_handler assigned:  true 
    upload_success_handler assigned: true 
    upload_complete_handler assigned: true 
    debug_handler assigned:    true 

SWF DEBUG: SWFUpload Init Complete 
SWF DEBUG: 
SWF DEBUG: ----- SWF DEBUG OUTPUT ---- 
SWF DEBUG: Build Number:   SWFUPLOAD 2.2.0 
SWF DEBUG: movieName:    SWFUpload_0 
SWF DEBUG: Upload URL:    /Content/uploadify/uploadify.php 
SWF DEBUG: File Types String:  *.* 
SWF DEBUG: Parsed File Types:  
SWF DEBUG: HTTP Success:   0 
SWF DEBUG: File Types Description: All Files (*.*) 
SWF DEBUG: File Size Limit:  0 bytes 
SWF DEBUG: File Upload Limit:  0 
SWF DEBUG: File Queue Limit:  999 
SWF DEBUG: Post Params: 
SWF DEBUG: ----- END SWF DEBUG OUTPUT ---- 
SWF DEBUG: 
SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.* 
SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list... 
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_0 
SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 1. Files Queued: 1 
SWF DEBUG: StartUpload: First file in queue 
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_0 
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /Content/uploadify/uploadify.php for File ID: SWFUpload_0_0 
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_0 
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_0. Bytes: 846359. Total: 846359 
SWF DEBUG: Event: uploadError: HTTP ERROR : File ID: SWFUpload_0_0. HTTP Status: 405. 
SWF DEBUG: Event: uploadComplete : Upload cycle complete. 

誰能告訴我,我在哪裏錯了?

編輯:

這是提琴手跟蹤請求性反應:

POST /Content/uploadify/uploadify.php HTTP/1.1 
Host: localhost:6930 
Connection: keep-alive 
Content-Length: 561702 
Origin: http://localhost:6930 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11 
Content-Type: multipart/form-data; boundary=----------Ef1Ij5Ef1cH2GI3GI3ei4Ij5ae0gL6 
Accept: */* 
Referer: http://localhost:6930/ 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

HTTP/1.1 405 Method Not Allowed 
Cache-Control: private 
Allow: GET, HEAD, OPTIONS, TRACE 
Content-Type: text/html; charset=utf-8 
Server: Microsoft-IIS/8.0 
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNcYWRtaW5pc3RyYXRvclxkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXERhdGVBbmRUaW1lQ29udHJvbFxEYXRlQW5kVGltZUNvbnRyb2xcQ29udGVudFx1cGxvYWRpZnlcdXBsb2FkaWZ5LnBocA==?= 
X-Powered-By: ASP.NET 
Date: Wed, 12 Dec 2012 10:03:44 GMT 
Content-Length: 5506 
+0

405方法不IIRC不準,也許應用程序池沒有權限或可能不支持上傳的方法,它是利用放或張貼? – Slicksim

+0

我沒有在IIS上運行我的應用程序。它在asp.net開發服務器上運行,它使用post方法 –

+0

你安裝了iisexpress嗎?可能值得通過它來運行它,看看它是否對dev設備的限制。 – Slicksim

回答

1

我終於解決了我的問題。它困擾着我的uploader

上傳者應該是mvc中控制器的動作。

這裏是解決方案:

$(function() { 
     $('#file_upload').uploadify({ 
      debug:true, 
      'swf': '/Content/uploadify/uploadify.swf', 
      'uploader': '/Home/Uploadify', 
      auto: true 

     }); 
    }); 
相關問題