问题描述
最近要做个通用的上传模块把文件上传到服务器!但是上传服务器要服务的吧,一时之间没什么头绪。哪位大神能指点下啊小弟感激不尽啊
解决方案
本帖最后由 gongyq_627 于 2011-06-02 09:28:06 编辑
解决方案二:
但是上传服务器要服务的吧?不明白你的意思文件上传本没什么复杂的,想要比较好的效果可以考虑使用第三方插件,比如基于Jquery的js插件:Uploadify……
解决方案三:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Collections.Specialized;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.IO;namespaceCompleteClient{///<summary>///文件发送工作类///</summary>classPostFile{///<summary>///通过post发送指定文件的指定字段到指定的uri上///</summary>///<paramname="uploadfile">上传文件路径</param>///<paramname="url">上传的到的URi位置</param>///<paramname="offset">当前偏移量</param>///<paramname="size">需要发送的块大小</param>///<paramname="fileFormName">服务器端"GET"取得的文件名</param>///<paramname="contenttype">文件类型(保留用)</param>///<paramname="querystring">GET数组(供服务器用GET取得一些信息)</param>///<paramname="cookies">本地cookies(保留用)</param>///<returns>uri的response的内容以string的形式返回</returns>publicstringUploadFileEx(stringuploadfile,stringurl,longoffset,longsize,stringfileFormName,stringcontenttype,NameValueCollectionquerystring,CookieContainercookies){if((fileFormName==null)||(fileFormName.Length==0)){fileFormName="file";}if((contenttype==null)||(contenttype.Length==0)){contenttype="application/octet-stream";}stringpostdata;postdata="?";if(querystring!=null){foreach(stringkeyinquerystring.Keys){postdata+=key+"="+querystring.Get(key)+"&";}}Uriuri=newUri(url+postdata);stringboundary="----------"+DateTime.Now.Ticks.ToString("x");HttpWebRequestwebrequest=(HttpWebRequest)WebRequest.Create(uri);webrequest.CookieContainer=cookies;webrequest.ContentType="multipart/form-data;boundary="+boundary;webrequest.Method="POST";//构造一个post请求的http头StringBuildersb=newStringBuilder();sb.Append("--");sb.Append(boundary);sb.Append("rn");sb.Append("Content-Disposition:form-data;name="");sb.Append(fileFormName);sb.Append("";filename="");sb.Append(Path.GetFileName(uploadfile));sb.Append(""");sb.Append("rn");sb.Append("Content-Type:");sb.Append(contenttype);sb.Append("rn");sb.Append("rn");stringpostHeader=sb.ToString();byte[]postHeaderBytes=Encoding.UTF8.GetBytes(postHeader);//Buildthetrailingboundarystringasabytearray//ensuringtheboundaryappearsonalinebyitselfbyte[]boundaryBytes=Encoding.ASCII.GetBytes("rn--"+boundary+"rn");FileStreamfileStream=newFileStream(uploadfile,FileMode.Open,FileAccess.Read);longlength=postHeaderBytes.Length+(long)size+boundaryBytes.Length;webrequest.ContentLength=length;StreamrequestStream=webrequest.GetRequestStream();//写入post头requestStream.Write(postHeaderBytes,0,postHeaderBytes.Length);//写入文件内容byte[]buffer=newByte[size];fileStream.Seek(offset,SeekOrigin.Current);fileStream.Read(buffer,0,buffer.Length);requestStream.Write(buffer,0,buffer.Length);//写入post请求的尾requestStream.Write(boundaryBytes,0,boundaryBytes.Length);//读取服务器的反馈消息WebResponseresponce=webrequest.GetResponse();Streams=responce.GetResponseStream();StreamReadersr=newStreamReader(s);returnsr.ReadToEnd();}}}
解决方案四:
如需以字母顺序显示介于"Adams"(包括)和"Carter"(不包括)之间的人,请使用下面的SQL:SELECT*FROMPersonsWHERELastNameBETWEEN'Adams'AND'Carter'重要事项:不同的数据库对BETWEEN...AND操作符的处理方式是有差异的。某些数据库会列出介于"Adams"和"Carter"之间的人,但不包括"Adams"和"Carter";某些数据库会列出介于"Adams"和"Carter"之间并包括"Adams"和"Carter"的人;而另一些数据库会列出介于"Adams"和"Carter"之间的人,包括"Adams",但不包括"Carter"。
解决方案五:
怎么个通用法?