2012-01-27 98 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