C# 通用文件上传模块该怎么写?想写个没思路

问题描述

最近要做个通用的上传模块把文件上传到服务器!但是上传服务器要服务的吧,一时之间没什么头绪。哪位大神能指点下啊小弟感激不尽啊

解决方案

本帖最后由 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"。
解决方案五:
怎么个通用法?

时间: 2024-08-06 23:12:28

C# 通用文件上传模块该怎么写?想写个没思路的相关文章

PHP通用文件上传类

    由于做项目中经常遇到文件上传,因此封装了一个通用的文件上传类,作用支持组文件上传,并且不同的上传域可以上传不同的文件类型,不同的文件类型限制的文件大小也可能不相同.举例来说:用户可上传一种展品并可为该展品上传一张缩略图,那么缩略图文件限制类型可能为jpg,gif,png等,而展品文件限制类型可能为mov,avi,mpeg等,而图片大小可能限制为100KB,音频视频大小可能限制为2MB.类代码如下: /* 文件上传类 */class Upload{    public $InputName

Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认"拿来主义",只是我个人更喜欢凡是求个所以然.本篇将阐述通过Html,IHttpHandler和 IHttpAsyncHandler实现文件上传和上传进度的原理,希望对你有多帮助. 效果图: 本文涉及到的知识点: 1.前台用到Html,Ajax,JQuery,JQuery UI 2.后台用到一般处理程序(IHttpHandler)

Asp.Net 无刷新文件上传并显示进度条的实现方法及思路_实用技巧

相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认"拿来主义",只是我个人更喜欢凡是求个所以然.本篇将阐述通过Html,IHttpHandler和 IHttpAsyncHandler实现文件上传和上传进度的原理,希望对你有多帮助. 效果图: 本文涉及到的知识点:1.前台用到Html,Ajax,JQuery,JQuery UI 2.后台用到一般处理程序(IHttpHandler)和

C# 通用文件上传类_实用技巧

1.Upfile.aspx: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Upfile.aspx.cs" Inherits="Inc_Upfile" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http

文件上传进度条php代码

目前我知道的方法有两种,一种是使用php的创始人 rasmus lerdorf 写的apc扩展模块来实现(http://pecl.php.net/package/apc),另外一种方法是使用pecl扩展模块uploadprogress实现(http://pecl.php.net/package/uploadprogress) 我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改. apc实现方法: 安装apc,参照官方文档安装,可以使用pecl模块安装方法快速简捷,这里不说明 配置p

PHP文件上传进度条的具体实现方式

我们在编写文件上传代码的时候,还需要考虑一个重要的实现功能,那就是文件上传所需要的进度条.目前我知道PHP文件上传进度条的方法有两种,一种是使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现,另外一种方法是使用PECL扩展模块uploadprogress实现. 基于PHP的AJAX技术的具体应用解析 PHP限制上传文件大小的具体解决办法 PHP批量上传图片的具体实现方式 PHP动态多文件上传的具体代码分享 PHP通用文件上传类的具体解析 我这里举两个分别实现的例子供参考,

Plupload上传组件 + java实现文件上传例子

为了兼容IE8浏览器,改用plupload:支持多文件上传和上传进度:之前程序的后台也不用修改.插件下载地址:http://www.plupload.com/download/ Plupload 是一个Web浏览器上的界面友好的文件上传模块,可显示上传进度.图像自动缩略和上传分块.可同时上传多个文件. 由于可以实现把文件分块上传,所以可以满足在某些限制了上传大小的环境上传大文件的需求.  代码如下 复制代码 var uploader = new plupload.Uploader({ runti

分享20多个很棒的jQuery 文件上传插件或教程_jquery

1. Plupload Plupload 是一个Web浏览器上的界面友好的文件上传模块,可显示上传进度.图像自动缩略和上传分块.可同时上传多个文件. 2. The KillersAjax Upload 该插件使用 XHR 用于上传多个文件,支持上传进度显示,但不支持 IE 3. SWFUpload jQuery Plugin 4. AjaxFileUpload 5. Uploadify Uploadify简单说来,是基于Jquery的一款文件上传插件.它的功能特色总结如下: 支持单文件或多文件上

基于jQuery 20款文件上传插件介绍

文件上传是网站很常见的功能之一,通过使用 jQuery 可以让上传过程更加人性化,更好的用户体验.本文介绍20个jQuery的文件上传插件,其中有一些是教程. 1. Plupload Plupload 是一个Web浏览器上的界面友好的文件上传模块,可显示上传进度.图像自动缩略和上传分块.可同时上传多个文件. 2. The KillersAjax Upload 该插件使用 XHR 用于上传多个文件,支持上传进度显示,但不支持 IE 3. SWFUpload jQuery Plugin 4. php