netwebservice文件上传|webservice 可以传文件吗

|

① ASP.NET WebService文件上传,如果调用webservice的用户量超大,并且存在同时调用,并且还是多文件上传的

你好,是这样的,webservice是专用来提供服务的,他可承受的压力取决于两个内因素,连接频率(或者是连容接数量)和数据量大小。一般来说不是很大的系统的话即使是上传大文件也不会对服务器造成太大压力。 实现分块上传其实并不是为了给服务器减压,它的主要目的是防止文件过大造成ASP页面提交过期,而且通过分块上传可以做一些进度条,改善用户体验。 这里有一个问题你需要注意,如果你用webservice文件上传实际上文件会在服务器中间流转两次,第一次文件流通过表单发送到WEB服务器上,然后你把这些文件在转换成byte[]发送到webservice上。所以所用webservice上传文件的最主要目的是网站资源分布式,即 ASP.net执行代码和静态资源放到不同服务器上,实现用户浏览时页面HTTP请求的多服务器分散。也可以便于以后WEB服务器的扩充。

② webservice 可以传文件吗

当然可以传附件了、、。。。axis用过吧?版本1就可以将你要传送的文件封装在DataHandler中,然后将对象或DataHandler数组(多个文件传送的时候)作为客户端调用函数的参数(从客户端上传文件到服务器)Axis服务的返回类型(从服务器端下载文件到客户端)进行传输。1.服务端程序:假设传输多个文件:在服务器端将文件取出来,并将文件封装在DataHandler数组中。代码如下: DataHandler[] ret = new DataHandler[totalFileNum]; … … java.io.File myFile = new java.io.File(filePath); if(myFile.isFile() && myFile.canRead()) { String fname = myFile.getAbsoluteFile().getCanonicalPath(); DataHandler[0] = new DataHandler(new FileDataSource(fname)); } … … return ret;2. 客户端的访问:代码如下: Service service = new Service(); Call call = (Call) service.createCall(); URL myURL = new URL("http://192.168.0.26:8080/axis/servlet/AxisServlet"); call.setTargetEndpointAddress(myURL); //设定服务的主机和位置 call.setOperationName(new QName("urn:MyAttachServer","echoDir")); //设置要调用的服务的方法 QName qnameAttachment = new QName("urn:MyAttachServer","DataHandler"); call.registerTypeMapping(DataHandler.class, qnameAttachment, .class,.class); //为附件(即DataHandler类)创建序列化生成器 call.addParameter("source", XMLType.XSD_STRING ,ParameterMode.IN); //设置服务调用方法的传入参数类型 call.setReturnType(XMLType.SOAP_ARRAY); //设置调用服务方法的返回类型,由于返回的是DataHandler数组,所以设置为SOAP_ARRAY类型 javax.activation.DataHandler[] ret = (javax.activation.DataHandler[])call.invoke(new Object[]{null}); //调用方法 for (i = 0; i < ret.length; ++i) { DataHandler recDH = ret[i]; java.io.File receivedFile = new java.io.File(recDH.getName()); //文件生成 }3. 服务的部署:注意:你要在部署的时候,定义DataHandler的序列化生成器。 编写deploy.wsdd文件: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:ns1="urn:att_STC_Server" > <service name="urn:att_STC_Server" provider="java:RPC" > <parameter name="className" value="samples.att_STC.att_STC_Server"/> <parameter name="allowedMethods" value="echoDir"/> <typeMapping deserializer="org.apache.axis.encoding.ser." languageSpecificType="java:javax.activation.DataHandler" qname="ns1:DataHandler" serializer="org.apache.axis.encoding.ser." encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </service></deployment>自己试试。

③ 如何通过WebService批量上传多个大文件

2. WEB Service 开发2.1. 服务配置Asp.Net 一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。<httpRuntime maxRequestLength="40960" executionTimeout="1800" />maxRequestLength:指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。默认值为 4096 (4 MB)。executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。2.2. 服务开发本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:3. WinForm 程序开发WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。3.1. Winform 程序实现效果程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。3.2. Winform 上传文件效果示例演示:选择两大于4MB文件进行上传,上传成功。3.3. 文件上传关键源码localhost.WebService mWebService = new WinTest.localhost.WebService();mWebService.CookieContainer = new System.Net.CookieContainer();mWebService.Timeout =- 1;对 XML Web services 的同步调用的超时(以毫秒为单位)。默认为 100000 毫秒。提示:如果将 Timeout 属性设置为 Timeout =-1,则指示该请求无超时。

④ C#使用webservice把文件上传到服务器

C#使用webservice把文件上传到服务器的代码如下(这里以C:\.jpg这个文件上传为例):

WebService部分:

///<summary>///保存文件到远程服务器///</summary>///<paramname="FileByteArray">待转换字节数组</param>///<paramname="FileLength">字节长度</param>///<paramname="SaveToUrl">保存路径</param>///<returns>返回是否执行成功</returns>[WebMethod(Description="保存文件到远程服务器.")]publicboolSaveFile(byte[]FileByteArray,intFileLength,stringSaveToUrl){try{FileStreamfs=newFileStream(SaveToUrl,FileMode.OpenOrCreate,FileAccess.Write);fs.Write(FileByteArray,0,FileLength);fs.Close();}catch{returnfalse;}returntrue;}

上传文件调用部分:

protectedvoidButton1_Click(objectsender,EventArgse){MangerPhoto.Servicemp=newMangerPhoto.Service();Response.Write(mp.SaveFile(getByte(),FileUpload1.PostedFile.ContentLength,"C:\.jpg"));}privatebyte[]getByte(){//获得转化后的字节数组//得到用户要上传的文件名stringstrFilePathName=FileUpload1.PostedFile.FileName;stringstrFileName=Path.GetFileName(strFilePathName);intFileLength=FileUpload1.PostedFile.ContentLength;//上传文件Byte[]FileByteArray=newByte[FileLength];//图象文件临时储存Byte数组StreamStreamObject=FileUpload1.PostedFile.InputStream;//建立数据流对像//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度StreamObject.Read(FileByteArray,0,FileLength);returnFileByteArray;}

⑤ android上传文件至.net webservice,怎么样实现压缩上传,.net服务器解压缩

本地先zip压缩,然后一般地上传

⑥ 如何使用webservice上传文件

Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。(Web Service 在此不做过多介绍,具体介绍可网络下)2. WEB Service 开发2.1. 服务配置Asp.Net 一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。<httpRuntime maxRequestLength="40960" executionTimeout="1800" />maxRequestLength:指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。默认值为 4096 (4 MB)。executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。2.2. 服务开发本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:3. WinForm 程序开发WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。3.1. Winform 程序实现效果程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。3.2. Winform 上传文件效果示例演示:选择两大于4MB文件进行上传,上传成功。3.3. 文件上传关键源码localhost.WebService mWebService = new WinTest.localhost.WebService();mWebService.CookieContainer = new System.Net.CookieContainer();mWebService.Timeout =- 1;对 XML Web services 的同步调用的超时(以毫秒为单位)。默认为 100000 毫秒。提示:如果将 Timeout 属性设置为 Timeout =-1,则指示该请求无超时。

⑦ 利用webservice怎么上传文件

1. Web Service 简介Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。(Web Service 在此不做过多介绍,具体介绍可网络下)2. WEB Service 开发2.1. 服务配置Asp.Net 一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。<httpRuntime maxRequestLength="40960" executionTimeout="1800" />maxRequestLength:指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。默认值为 4096 (4 MB)。executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。2.2. 服务开发本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:3. WinForm 程序开发WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。3.1. Winform 程序实现效果程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。

⑧ asp.net 怎样用webservice上传图片

把上传的图片进行编码(base64),数据传输到服务器端后再进行解码生成图片

⑨ 怎么用WebService传输XML文件

WebService中文件传输WebService处理传递普通的信息,还可以传输文件,下面介绍WebService是怎么完成文件传输的。1、 首先编写服务器端上传文件的WebService方法package com.hoo.service;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import javax.activation.DataHandler;/** * <b>function:</b>Axis WebService完成文件上传服务器端 * @author hoojo * @createDate Dec 18, 2010 1:16:16 PM * @file UploadFileService.java * @package com.hoo.service * @project AxisWebService * @blog http://blog.csdn.net/IBM_hoojo * @email [email protected] * @version 1.0 */public class UploadFileService { /** * <b>function:</b>传递文件 * @author hoojo * @createDate Dec 18, 2010 1:27:58 PM * @param handler DataHandler这个参数必须 * @param fileName 文件名称 * @return upload Info */ public String upload(DataHandler handler, String fileName) { if (fileName != null && !"".equals(fileName)) { File file = new File(fileName); if (handler != null) { InputStream is = null; FileOutputStream fos = null; try { is = handler.getInputStream(); fos = new FileOutputStream(file); byte[] buff = new byte[1024 * 8]; int len = 0; while ((len = is.read(buff)) > 0) { fos.write(buff, 0, len); } } catch(FileNotFoundException e) { return "fileNotFound"; } catch (Exception e) { return "upload File failure"; } finally { try { if (fos != null) { fos.flush(); fos.close(); } if (is != null) { is.close(); } } catch (Exception e) { e.printStackTrace(); } } return "file absolute path:" + file.getAbsolutePath(); } else { return "handler is null"; } } else { return "fileName is null"; } }}上传方法和我们以前在Web中上传唯一不同的就是参数一DataHandler,可以将这类看成文件传输器,他可以把文件序列化。然后通过DataHandler可以得到一个输入流InputStream,通过这个流可以读到文件的内容。其他的操作和普通上传类似。2、 定制wsdd发布文件上传的WebService服务<?xml version="1.0" encoding="UTF-8"?><deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="UploadFile" provider="java:RPC"> <parameter name="className" value="com.hoo.service.UploadFileService" /> <parameter name="allowedMethods" value="*" /> <parameter name="scope" value="Session" /> <!– 和服务器端上传文件的方法签名对应,参数也对应 –> <operation name="upload" qname="operNS:upload" xmlns:operNS="upload" returnType="rns:string" xmlns:rns="http://www.w3.org/2001/XMLSchema"> <parameter name="handler" type="ns:DataHandler" xmlns:ns="http://www.w3.org/2001/XMLSchema"/> <parameter name="fileName" type="ns:string" xmlns:ns="http://www.w3.org/2001/XMLSchema"/> </operation> <typeMapping qname="hns:DataHandler" xmlns:hns="ns:FileUploadHandler" languageSpecificType="java:javax.activation.DataHandler" serializer="org.apache.axis.encoding.ser." deserializer="org.apache.axis.encoding.ser." encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </service></deployment>上面才xml节点元素在前面都见过了,说明下operation中的参数,注意要指定参数类型,特别是DataHandler的类型,然后就是typeMapping的serializer、deserializer的序列化和反序列化工厂类的配置。3、 用dos命令发布当前WebServiceC:\SoftWare\tomcat-5.0.28\tomcat-5.0.28\webapps\AxisWebService\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/AxisWebService/services/AdminService deployUpload.wsdd发布完成后,可以通过这个地址查看uploadFile这个service了http://localhost:8080/AxisWebService/servlet/AxisServlet4、 编写客户端代码package com.hoo.client;import java.rmi.RemoteException;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.xml.namespace.QName;import javax.xml.rpc.ParameterMode;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.XMLType;import org.apache.axis.encoding.ser.;import org.apache.axis.encoding.ser.;/** * <b>function:</b>上传文件WebService客户端 * * @author hoojo * @createDate Dec 18, 2010 1:38:14 PM * @file UploadFileClient.java * @package com.hoo.client * @project AxisWebService * @blog http://blog.csdn.net/IBM_hoojo * @email [email protected] * @version 1.0 */public class UploadFileClient { public static void main(String[] args) throws ServiceException, RemoteException { String url = "http://localhost:8080/AxisWebService/services/UploadFile"; String fileName = "readMe.txt"; String path = System.getProperty("user.dir") + "\\WebRoot\\" + fileName; System.out.println(path); //这样就相当于构造了一个带文件路径的File了 DataHandler handler = new DataHandler(new FileDataSource(path)); Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url); /** * 注册异常类信息和序列化类 ns:FileUploadHandler 和 wsdd 配置文件中的typeMapping中的xmlns:hns="ns:FileUploadHandler" 的对应 DataHandler * 和 wsdd 配置文件中的typeMapping中的qname="hns:DataHandler"的DataHandler对应 */ QName qn = new QName("ns:FileUploadHandler", "DataHandler"); call.registerTypeMapping(DataHandler.class, qn, .class, .class); call.setOperationName(new QName(url, "upload")); //设置方法形参,注意的是参数1的type的DataHandler类型的,和上面的qn的类型是一样的 call.addParameter("handler", qn, ParameterMode.IN); call.addParameter("fileName", XMLType.XSD_STRING, ParameterMode.IN); //设置返回值类型,下面2种方法都可以 call.setReturnClass(String.class); //call.setReturnType(XMLType.XSD_STRING); String result = (String) call.invoke(new Object[] { handler, "remote_server_readMe.txt" }); System.out.println(result); }}至此,文件传输就完成了。怎么样,还不错吧!如果你用myEclipse进行开发的话,运行时可能会出现以下的错误:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream原因是jar包版本不统一,解决方法如下:删除Java EE 5 Libraries/javaee.jar/mail里的包有东西.具体方法如下:用rar打开X:/Program Files/MyEclipse 6.0/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710/data/libraryset/EE_5/javaee.jar,然后删除mail,一切就ok了.

⑩ 调用webservice方法的时候怎么把附件发送过去

2. WEB Service 开发2.1. 服务配置 Asp.Net 一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。<httpRuntime maxRequestLength="40960" executionTimeout="1800" />maxRequestLength:指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。默认值为 4096 (4 MB)。executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。2.2. 服务开发 本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:3. WinForm 程序开发 WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。3.1. Winform 程序实现效果 程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。3.2. Winform 上传文件效果示例演示:选择两大于4MB文件进行上传,上传成功。3.3. 文件上传关键源码localhost.WebService mWebService = new WinTest.localhost.WebService();mWebService.CookieContainer = new System.Net.CookieContainer();mWebService.Timeout =- 1; 对 XML Web services 的同步调用的超时(以毫秒为单位)。默认为 100000 毫秒。提示:如果将 Timeout 属性设置为 Timeout =-1,则指示该请求无超时。


赞 (0)