我正在尝试仅使用
HTML5和
JavaScript / jQuery将文件上传到我的WCF服务. WCF服务是从Windows服务而不是IIS自托管的,所以我认为我不能使用PHP或aspx上传处理程序.文件是二进制文件而不是文本.
理想情况下,我想最终得到一个.net流对象,我可以在本地编写文件(服务器端).在这一点上,我只是在寻找非常基本的文件上传.
我目前可以进行JSON通信,但无法实现二进制文件的飞跃.目前我这么远而且陷入困境:
服务界面:
[OperationContract] [WebInvoke(Method = "POST",UriTemplate = "SendFile")] string SendFile(Stream stream);
服务实施:
public string SendFile(Stream stream) { // this works for strings,but i want a FileStream StreamReader reader = new StreamReader(stream); string data = reader.ReadToEnd(); return data; }
HTML:
<input type="file" id="fileInput" onchange='sendFile();' />
JavaScript / jQuery:
function sendFile() { submitButton.disabled = true; ; setInnerText("sending file..."); var file = document.getElementById('fileInput').files[0]; var url = "http://10.0.1.9:8732/RainService/SendFile"; $.ajax({ url: url,type: "POST",data: file,}); }
在Chrome控制台中,我收到“非法调用”错误.我可以使用data:file.name,但这样可以正常工作.我需要发送文件内容流,以便我可以在服务器端重建它.
有任何想法吗?
解决方法
你不能通过ajax发送文件.
您必须使用集成了SWF对象的插件,您可以在其中上传某些文件类型(您可以定义什么).
您必须使用集成了SWF对象的插件,您可以在其中上传某些文件类型(您可以定义什么).
所以,我可以建议你使用uploadify(我用它进入我的MVC3项目).
或者您可以使用:
http://www.codeproject.com/KB/WCF/WCFDownloadUploadService.aspx
要么
http://www.codeproject.com/KB/WCF/UploadlargeFilesWCFHTTP.aspx获取更多文档
当然,谷歌可以帮助你more
原文地址:https://www.jb51.cc/html5/168287.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。