【发布时间】:2012-07-13 01:45:46
【问题描述】:
如何将图像从移动设备上传到我的外部数据库?
这是我当前的 WCF 服务:
界面:
[WebInvoke(UriTemplate = "/Upload", Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped), CorsEnabled]
string UploadProfileImage(string image);
类方法:
public string UploadProfileImage(string image)
{
// Upload code needs to go here.
}
我可以很好地使用 ajax 发布,我只是不知道如何使用图像来发布。
这是我如何发布帖子的 jQuery 示例。
// This is the success function that gets called after selecting an image from my device
function uploadSuccess(imageURI) {
uploadImage(imageURI);
}
function uploadImage(imageURI)
{
var data = '{"image":"' + imageURI + '"}'
$.ajax({
url: "http://192.168.101.55:8848/api/Upload",
type: "POST",
contentType: "application/json",
data: data,
success: function (result) {
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
【问题讨论】:
-
您是否正在尝试将图像从客户端上传到您的 REST 服务?如果是这种情况,您的服务方法的参数应该是流类型而不是字符串。
-
是的,谢谢。我只是想通了。我最大的问题是我在 LogCat 调试控制台中收到一个错误,上面写着“错误错误请求”。如果我能弄清楚错误是什么,我可能会走得更远。
-
错误请求可能是由于您的客户端发送字节数组,而服务方法需要一个字符串。只需将服务方法参数类型更改为流,希望它可以正常工作。确保设置 readerQuotas 以上传大文件
-
我收到了同样的错误信息。错误的请求。
-
尝试使用 Fiddler 检查您的请求,了解原始请求的外观。错误的请求也可能是由于文件的大小。尝试使用一个非常小的文件先让它工作,然后你可以添加 readerQuotas 来上传大文件。在您的服务上启用跟踪 (msdn.microsoft.com/en-us/library/ms733025.aspx) 以获得错误请求错误的确切原因。
标签: wcf file-upload cordova