//安卓部分的代码
public class UploadFile {
public static void toUploadFile(String url, String path) throws FileNotFoundException {
try {
// 1,读出文件到byte[]
InputStream is = new FileInputStream(path);
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] buff = new byte[1024]; // buff用于存放循环读取的临时数据
int rc = 0;
while ((rc = is.read(buff, 0, 1024)) > 0) {
os.write(buff, 0, rc);
}
ByteArrayEntity reqEntity = new ByteArrayEntity(os.toByteArray());
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(true);
// 2, 初始化Post, 添加参数
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader("charset", HTTP.UTF_8);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-Type", "binary/octet-stream");
httpPost.setEntity(reqEntity);
DefaultHttpClient client = getHttpClient();
HttpResponse response = client.execute(httpPost);// 上传文件
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
System.out.println("调用成功: statusCode : " + statusCode);
return;
} else {
System.out.println("调用失败:code=" + statusCode);
return;
}
} catch (ClientProtocolException e) {
System.out.println(e.toString());
} catch (IOException e) {
System.out.println(e.toString());
} catch (Exception e) {
System.out.println(e.toString());
}
}
protected static DefaultHttpClient getHttpClient() {
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 300);// 连接时间
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 3600 * 1000);// 超时时间
return client;
}
}
//WCF部分的代码
[WebInvoke(UriTemplate = "ReceiveImg2", Method = "POST")]
public string ReceiveImg2(Stream request)
{
try
{
string path = System.Web.Hosting.HostingEnvironment.MapPath("~") + "1.jpg";
using (var file = File.Create(path))
{
request.CopyTo(file);
}
return "1";
}
catch
{
return "-1";
}
}
web.Config里面 basicHttpBinding 的配置
<basicHttpBinding>
<binding name="DocumentExplorerServiceBinding"
sendTimeout="00:10:00"
transferMode="Streamed"
messageEncoding="Text"
textEncoding="utf-8"
maxReceivedMessageSize="9223372036854775807">
</binding>
</basicHttpBinding>
分享到:
相关推荐
在本教程中,我们将深入探讨如何使用WCF创建RESTful服务,并将其宿主在Windows服务中。 1. **理解WCF RESTful服务** WCF RESTful服务通过使用WebHttpBinding和WebHttpBehavior,允许我们创建符合REST原则的接口。...
Android Studio 调用 Restful WCF 接口需要使用 HttpURLConnection 和线程来实现异步网络访问,并需要在 AndroidManifest.xml 中加入网络权限,否则将无法访问网络。同时,需要注意网络访问的超时时间和缓存策略,以...
**WCF(Windows Communication Foundation)**是微软推出的一种面向服务的通信框架,它提供了一种在分布式系统中构建、发布和使用服务的方式。WCF不仅仅支持SOAP协议,还可以支持RESTful(Representational State ...
基于WCF 的文件上传现在,服务端是控制台程序,能够显示客户端上传的文件名称,文件存放路径,客户端是WinForm程序,能够下载服务器端制定目录的文件.开发环境VS2008 需要安装FrameWork3.5
打开.\TestWcf\ConsoleApplication1\bin\Release下的ConsoleApplication1.exe 然后在浏览器地址栏输入: http://127.0.0.1:9998/PersonRetriever/Persons/Tom 即可显示结果。 问题: 如果将Tom改为任何大于260个...
总结起来,"wcf+wpf实现文件上传下载实例"是一个结合了WCF服务和WPF客户端的应用,它展示了如何在分布式环境中安全、高效地处理文件操作。这个实例涵盖了服务端契约定义、客户端调用、文件流处理、UI交互以及安全...
下面我们将深入探讨如何利用WCF实现文件上传功能,包括自我寄宿和在IIS中的服务寄宿两种方式。 ### 1. WCF基础知识 首先,理解WCF的基本概念至关重要。WCF提供了一种基于合同的服务模型,服务和客户端通过接口定义...
此外,为了使WCF服务更符合RESTful原则,可以使用`WebHttpBehavior`行为来调整服务的行为,例如自动返回JSON或XML格式的数据。例如: ```csharp var endpoint = host.AddServiceEndpoint(typeof(IMyRestService), ...
综上所述,"C#通过WCF文件分段上传"这个主题涵盖了许多重要的编程和技术概念,包括C#编程、WCF服务的实现与调用、大文件处理策略、服务测试以及安全性考虑。掌握这些知识点对于开发高效、可靠的文件上传系统至关重要...
在本文中,我们将深入探讨如何使用Silverlight与WCF(Windows Communication Foundation)服务结合,实现文件上传功能,尤其关注大文件上传以及进度显示。这个"Silverlight使用WCF服务上传文件Demo"是一个实用示例,...
在WCF中实现文件上传功能,主要涉及服务端和客户端的交互,利用流(Stream)处理大文件,以高效且节省内存的方式进行传输。本篇文章将详细介绍如何通过WCF服务来实现文件上传功能。 ### 一、服务端实现 1. **创建...
标题 "Asp.net WCF RESTful 包含数据库 能运行测试" 描述了一个使用ASP.NET框架、Windows Communication Foundation (WCF) 和RESTful服务构建的项目,该项目集成了数据库功能,并且能够进行运行测试。这涉及到多个IT...
- 使用WCF Test Client或其他工具进行功能测试,确保文件上传功能正常工作。同时,使用调试器跟踪代码执行,解决可能出现的问题。 10. **日志记录和监控**: - 为了监控服务的运行状态和故障排查,通常需要添加...
本案例主要关注如何利用WCF实现文件上传的功能,这对于需要在客户端和服务器之间交换大量数据的应用程序来说是至关重要的。 首先,我们需要了解WCF服务的基本结构。一个WCF服务由一个或多个服务合同(Service ...
**WCF文件上传下载**是基于Windows Communication Foundation(WCF)技术实现的一种高效、安全的文件传输机制。WCF是.NET Framework中用于构建分布式应用程序的服务框架,它支持多种通信协议和绑定,使得服务间的...
在“WCF文件简单上传服务器”的示例中,我们主要关注的是如何使用WCF来实现文件的上传功能。文件上传通常涉及到以下几个关键知识点: 1. **服务合同(Service Contract)**:这是定义WCF服务提供的操作的接口。在C#...
在本场景中,我们将探讨如何使用WCF来实现文件的上传和下载功能。 首先,我们要明白WCF服务的工作原理。WCF通过定义一种名为服务契约(Service Contract)的接口来描述服务的操作,然后实现这个契约,提供服务的...
WCF提供了多种方式来处理文件传输。通过定义服务合同和服务行为,我们可以创建一个允许客户端上传文件的服务。在服务端,我们需要创建一个接收文件流的方法,而在客户端则需要创建一个调用该服务的方法并传递文件...
**WCF(Windows Communication Foundation)**是微软推出的一种面向服务的通信框架,它提供了一种统一的方式来构建分布式应用程序。在WCF中,可以创建强类型、安全、可靠且可扩展的服务,这些服务可以通过多种传输...
在本示例中,我们将探讨如何使用C#和WCF实现文件上传功能,特别关注大文件的stream传输,以优化内存使用。 首先,我们需要理解项目结构: 1. **FileServer.sln**: 这是一个Visual Studio解决方案文件,包含了整个...