2012-01-27 67 views
1

我想用RESTful方式使用openrasta實現文件上傳,但無法找到正確的方式來實現它。有幾種方法,如使用Ajax文件上傳或使用iframe我可以找到。文件上傳的RESTful方式

任何人都可以提出任何方式來做到這一點,或提供一些我可以參考的資源。

在此先感謝

+0

我不覺得這個問題沒有任何研究或者不清楚。 – prashant 2012-01-27 10:00:17

+0

無論如何添加了一個答案,但已經有一些答案,涵蓋這部分在stackoverflow上。請參閱http://stackoverflow.com/search?q=upload+file+openrasta – SerialSeb 2012-01-30 12:12:41

回答

2

在我看來,你試圖建立文件上載在HTML環境。

你有兩種選擇。

使用HTML表單上傳文件。

<form enctype="multipart/form-data" action="/files" method="post"> 
    <fieldset> 
    <input type="file" name="filename" /> 
    <input type="submit" /> 
    </fieldset> 
</form> 

您可以在OR中很容易地映射它。您的處理程序應該是這樣的:

public object Post(IFile filename) { /* do something with the file */ } 

你不能這樣做與進度條基於AJAX的文件上傳,因爲在純的XMLHttpRequest沒有辦法處理的二進制文件。如果您在場景後面使用flash/silverlight控件的路線,則只需確保將文件的內容發佈到/files,如前例所示,最簡單的方法是將內容發送到應用程序/ octet-stram的Content-Type http頭文件和相同的處理程序代碼將正常工作。

+0

其實我想發送HTTP頭像身份驗證這是可能使用Ajax請求。是否有任何方法我可以處理這與你給的例子。 – prashant 2012-01-31 07:05:49

+1

身份驗證是完全無關的,這是http身份驗證本身的作用,瀏覽器會爲您提供幫助。如果不依賴閃光燈或silverlight控件,你無法做的就是通過xmlhttprequest發送ajax請求,添加http頭文件*和發送文件。這是不可能的。 – SerialSeb 2012-01-31 13:12:20

+1

我試過你給出的例子,在處理方法中使用IFile作爲參數,但它不適用於我.Openrasta拋出異常「處理管道貢獻者Openrasta時拋出異常」所以我修改了處理程序方法 ' public OperationResult Post(IEnumerable entities)'同樣http://stackoverflow.com/questions/4190537/uploading-with-multipart-form-data-using-openrasta-and-imultiparthttpentity它爲我工作。 – prashant 2012-01-31 14:05:18