问题描述
我新手刚入门想练练别人写了服务端的上传让我写下载部分代码给了我要求但是不会写啊求大家支援求给代码publicboolUpload(Stringsender,Stringreceiver,UploadFile_upfile,outCustomExceptionServiceError){ServiceError=null;//MemoryStreamms=newMemoryStream(_upfile.data);try{//1根据用户名检查/创建目录//2把文件保存到目录下,如果文件存在,则覆盖//3检查用户接收端是否在线,若在线则发送通知(反向契约),若不在线,则缓存消息try{StringDirectoryName=sender+"Files";StringFileName=_upfile.filename;if(!Directory.Exists(DirectoryName)){Directory.CreateDirectory(DirectoryName);}StringPathName=Path.Combine(DirectoryName,FileName);File.Copy(_upfile.filename,FileName,true);FileStreamfs=newFileStream(PathName,FileMode.Open);Byte[]data=newByte[1024];Byte[]temp=newByte[0];while(fs.Read(data,0,1024)>0){Byte[]newTemp=newByte[temp.Length+data.Length];Array.Copy(data,0,newTemp,temp.Length,data.Length);temp=newTemp;}data=temp;_upfile.data=data;StringstrMessage="";//接收者在线则发送消息IWCFServiceCallBacksc=OperationContext.Current.GetCallbackChannel<IWCFServiceCallBack>();sc.SendMessage(strMessage,receiver);}catch(Exceptionex){ServiceError=newCustomException(ex);returnfalse;}returntrue;}catch(Exceptionex){ServiceError=newCustomException(ex);returnfalse;}}///<summary>///用户在反向契约中,收到发送者发送文件的提示后,通过本方法,获取文件///</summary>///<paramname="sender"></param>///<paramname="fileName"></param>///<paramname="ServiceError"></param>///<returns></returns>publicUploadFileDownload(Stringsender,StringfileName,StringDir,outCustomExceptionServiceError){ServiceError=null;UploadFileuf=newUploadFile();//stringPath=Dir+fileName;try{//1根据sender和filename找到文件//2构造UploadFile对象//3返回这个对象}catch(Exceptionex){ServiceError=newCustomException(ex);}returnuf;}我是在下载那块//1根据sender和filename找到文件//2构造UploadFile对象//3返回这个对象
解决方案
解决方案二:
你先问他要来客户端的上传代码服务端的下载,不就是把客户端的上传过程倒过来就行了上传:客户端发送,服务端接收下载:服务端发送,客户端接收
解决方案三:
参见:
解决方案四:
服务器端下载文件protectedvoiddFile(){//判断是否选择文件名if(LisBoxFile.SelectedValue!=""){if(Session["txt"]!=""){//获取文件路径stringpath=Server.MapPath("File/")+Session["txt"].ToString();//初始化FileInfo类的实例,它作为文件路径的包装FileInfofi=newFileInfo(path);//判断文件是否存在if(fi.Exists){//将文件保存到本机上Response.Clear();Response.AddHeader("Content-Disposition","attachment;filename="+Server.UrlEncode(fi.Name));Response.AddHeader("Content-Length",fi.Length.ToString());Response.ContentType="application/octet-stream";Response.Filter.Close();Response.WriteFile(fi.FullName);Response.End();}}}else{Page.RegisterStartupScript("sb","<script>alert('请您先选择文件名')</script>");}}
解决方案五:
干货来了,可能要付出一点小的代价,值不值自己衡量~http://download.csdn.net/detail/chenandczh/3661723
解决方案六:
下载类很多,http://www.cnblogs.com/wang726zq/archive/2012/07/30/ftp.html