一、文件(图片)保存到数据库 //得到用户要上传的文件名 string strFilePathName = loFile.PostedFile.FileName; string strFileName = Path.GetFileName(strFilePathName); int FileLength = loFile.PostedFile.ContentLength; if(FileLength<=0) return; try {//上传文件 Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组 Stream StreamObject = loFile.PostedFile.InputStream; //建立数据流对像 //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度 StreamObject.Read(FileByteArray,0,FileLength); //建立SQL Server链接 string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"]; SqlConnection Con = new SqlConnection(strCon); String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)"; SqlCommand CmdObj = new SqlCommand(SqlCmd, Con); CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray; CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = loFile.PostedFile.ContentType; //记录文件类型 //把其它单表数据记录上传 CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = tbDescription.Text; //记录文件长度,读取时使用 CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = FileLength; Con.Open(); CmdObj.ExecuteNonQuery(); Con.Close(); //跳转页面 Response.Redirect("ShowAll.aspx"); } catch { } 取出来显示: int ImgID = Convert.ToInt32(Request.QueryString["ID"]); //ID为图片ID //建立数据库链接 string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"]; SqlConnection Con = new SqlConnection(strCon); String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID"; SqlCommand CmdObj = new SqlCommand(SqlCmd, Con); CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID; Con.Open(); SqlDataReader SqlReader = CmdObj.ExecuteReader(); SqlReader.Read(); Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型 //输出图象文件二进制数制 Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]); Response.End(); //也可以保存为图像 // FileStream fs = new FileStream(@"C:/aa.BMP", FileMode.OpenOrCreate, FileAccess.Write); // fs.Write((byte[])SqlReader["ImageData"], 0,(int)SqlReader["ImageSize"]); // fs.Close(); Con.Close(); 二、文件(图片)保存到硬盘 方法一 /** <summary> 2 /// 下载文件 3 /// </summary> 4 /// <param name="filename">文件物理地址</param> 5 protected void DownloadFile(string filename) 6 { 7 8 string saveFileName = "test.xls"; 9 int intStart = filename.LastIndexOf("//")+1; 10 saveFileName = filename.Substring(intStart,filename.Length-intStart); 11 12 System.IO.FileInfo fi=new System.IO.FileInfo(filename); 13 string fileextname=fi.Extension; 14 string DEFAULT_CONTENT_TYPE = "application/unknown"; 15 RegistryKey regkey,fileextkey; 16 string filecontenttype; 17 try 18 { 19 regkey=Registry.ClassesRoot; 20 fileextkey=regkey.OpenSubKey(fileextname); 21 filecontenttype=fileextkey.GetValue("Content Type",DEFAULT_CONTENT_TYPE).ToString(); 22 } 23 catch 24 { 25 filecontenttype=DEFAULT_CONTENT_TYPE; 26 } 27 28 29 Response.Clear(); 30 Response.Charset = "utf-8"; 31 Response.Buffer= true; 32 this.EnableViewState = false; 33 Response.ContentEncoding = System.Text.Encoding.UTF8; 34 35 Response.AppendHeader("Content-Disposition","attachment;filename=" + saveFileName); 36 Response.ContentType=filecontenttype; 37 38 Response.WriteFile(filename); 39 Response.Flush(); 40 Response.Close(); 41 42 Response.End(); 43 } 44 方法二 /** <summary> 2 /// 下载文件 3 /// </summary> 4 /// <param name="filename">文件物理地址</param> 5 protected void DownloadFile(string filename) 6 { 7 string saveFileName = "test.xls"; 8 int intStart = filename.LastIndexOf("//")+1; 9 saveFileName = filename.Substring(intStart,filename.Length-intStart); 10 11 Response.Clear(); 12 Response.Charset = "utf-8"; 13 Response.Buffer= true; 14 this.EnableViewState = false; 15 Response.ContentEncoding = System.Text.Encoding.UTF8; 16 17 Response.AppendHeader("Content-Disposition","attachment;filename=" + saveFileName); 18 Response.WriteFile(filename); 19 Response.Flush(); 20 Response.Close(); 21 22 Response.End(); 23 }文件的ContentType类型 小全 #region ".*"="application/octet-stream" ".001"="application/x-001" ".301"="application/x-301" ".323"="text/h323" ".906"="application/x-906" ".907"="drawing/907" ".a11"="application/x-a11" ".acp"="audio/x-mei-aac" ".ai"="application/postscript" ".aif"="audio/aiff" ".aifc"="audio/aiff" ".aiff"="audio/aiff" ".anv"="application/x-anv" ".asa"="text/asa" ".asf"="video/x-ms-asf" ".asp"="text/asp" ".asx"="video/x-ms-asf" ".au"="audio/basic" ".avi"="video/avi" ".awf"="application/vnd.adobe.workflow" ".biz"="text/xml" ".bmp"="application/x-bmp" ".bot"="application/x-bot" ".c4t"="application/x-c4t" ".c90"="application/x-c90" ".cal"="application/x-cals" ".cat"="application/vnd.ms-pki.seccat" ".cdf"="application/x-netcdf" ".cdr"="application/x-cdr" ".cel"="application/x-cel" ".cer"="application/x-x509-ca-cert" ".cg4"="application/x-g4" ".cgm"="application/x-cgm" ".cit"="application/x-cit" ".class"="java/*" ".cml"="text/xml" ".cmp"="application/x-cmp" ".cmx"="application/x-cmx" ".cot"="application/x-cot" ".crl"="application/pkix-crl" ".crt"="application/x-x509-ca-cert" ".csi"="application/x-csi" ".css"="text/css" ".cut"="application/x-cut" ".dbf"="application/x-dbf" ".dbm"="application/x-dbm" ".dbx"="application/x-dbx" ".dcd"="text/xml" ".dcx"="application/x-dcx" ".der"="application/x-x509-ca-cert" ".dgn"="application/x-dgn" ".dib"="application/x-dib" ".dll"="application/x-msdownload" ".doc"="application/msword" ".dot"="application/msword" ".drw"="application/x-drw" ".dtd"="text/xml" ".dwf"="Model/vnd.dwf" ".dwf"="application/x-dwf" ".dwg"="application/x-dwg" ".dxb"="application/x-dxb" ".dxf"="application/x-dxf" ".edn"="application/vnd.adobe.edn" ".emf"="application/x-emf" ".eml"="message/rfc822" ".ent"="text/xml" ".epi"="application/x-epi" ".eps"="application/x-ps" ".eps"="application/postscript" ".etd"="application/x-ebx" ".exe"="application/x-msdownload" ".fax"="image/fax" ".fdf"="application/vnd.fdf" ".fif"="application/fractals" ".fo"="text/xml" ".frm"="application/x-frm" ".g4"="application/x-g4" ".gbr"="application/x-gbr" ".gcd"="application/x-gcd" ".gif"="image/gif" ".gl2"="application/x-gl2" ".gp4"="application/x-gp4" ".hgl"="application/x-hgl" ".hmr"="application/x-hmr" ".hpg"="application/x-hpgl" ".hpl"="application/x-hpl" ".hqx"="application/mac-binhex40" ".hrf"="application/x-hrf" ".hta"="application/hta" ".htc"="text/x-component" ".htm"="text/html" ".html"="text/html" ".htt"="text/webviewhtml" ".htx"="text/html" ".icb"="application/x-icb" ".ico"="image/x-icon" ".ico"="application/x-ico" ".iff"="application/x-iff" ".ig4"="application/x-g4" ".igs"="application/x-igs" ".iii"="application/x-iphone" ".img"="application/x-img" ".ins"="application/x-internet-signup" ".isp"="application/x-internet-signup" ".IVF"="video/x-ivf" ".java"="java/*" ".jfif"="image/jpeg" ".jpe"="image/jpeg" ".jpe"="application/x-jpe" ".jpeg"="image/jpeg" ".jpg"="image/jpeg" ".jpg"="application/x-jpg" ".js"="application/x-javascript" ".jsp"="text/html" ".la1"="audio/x-liquid-file" ".lar"="application/x-laplayer-reg" ".latex"="application/x-latex" ".lavs"="audio/x-liquid-secure" ".lbm"="application/x-lbm" ".lmsff"="audio/x-la-lms" ".ls"="application/x-javascript" ".ltr"="application/x-ltr" ".m1v"="video/x-mpeg" ".m2v"="video/x-mpeg" ".m3u"="audio/mpegurl" ".m4e"="video/mpeg4" ".mac"="application/x-mac" ".man"="application/x-troff-man" ".math"="text/xml" ".mdb"="application/msaccess" ".mdb"="application/x-mdb" ".mfp"="application/x-shockwave-flash" ".mht"="message/rfc822" ".mhtml"="message/rfc822" ".mi"="application/x-mi" ".mid"="audio/mid" ".midi"="audio/mid" ".mil"="application/x-mil" ".mml"="text/xml" ".mnd"="audio/x-musicnet-download" ".mns"="audio/x-musicnet-stream" ".mocha"="application/x-javascript" ".movie"="video/x-sgi-movie" ".mp1"="audio/mp1" ".mp2"="audio/mp2" ".mp2v"="video/mpeg" ".mp3"="audio/mp3" ".mp4"="video/mpeg4" ".mpa"="video/x-mpg" ".mpd"="application/vnd.ms-project" ".mpe"="video/x-mpeg" ".mpeg"="video/mpg" ".mpg"="video/mpg" ".mpga"="audio/rn-mpeg" ".mpp"="application/vnd.ms-project" ".mps"="video/x-mpeg" ".mpt"="application/vnd.ms-project" ".mpv"="video/mpg" ".mpv2"="video/mpeg" ".mpw"="application/vnd.ms-project" ".mpx"="application/vnd.ms-project" ".mtx"="text/xml" ".mxp"="application/x-mmxp" ".net"="image/pnetvue" ".nrf"="application/x-nrf" ".nws"="message/rfc822" ".odc"="text/x-ms-odc" ".out"="application/x-out" ".p10"="application/pkcs10" ".p12"="application/x-pkcs12" ".p7b"="application/x-pkcs7-certificates" ".p7c"="application/pkcs7-mime" ".p7m"="application/pkcs7-mime" ".p7r"="application/x-pkcs7-certreqresp" ".p7s"="application/pkcs7-signature" ".pc5"="application/x-pc5" ".pci"="application/x-pci" ".pcl"="application/x-pcl" ".pcx"="application/x-pcx" ".pdf"="application/pdf" ".pdf"="application/pdf" ".pdx"="application/vnd.adobe.pdx" ".pfx"="application/x-pkcs12" ".pgl"="application/x-pgl" ".pic"="application/x-pic" ".pko"="application/vnd.ms-pki.pko" ".pl"="application/x-perl" ".plg"="text/html" ".pls"="audio/scpls" ".plt"="application/x-plt" ".png"="image/png" ".png"="application/x-png" ".pot"="application/vnd.ms-powerpoint" ".ppa"="application/vnd.ms-powerpoint" ".ppm"="application/x-ppm" ".pps"="application/vnd.ms-powerpoint" ".ppt"="application/vnd.ms-powerpoint" ".ppt"="application/x-ppt" ".pr"="application/x-pr" ".prf"="application/pics-rules" ".prn"="application/x-prn" ".prt"="application/x-prt" ".ps"="application/x-ps" ".ps"="application/postscript" ".ptn"="application/x-ptn" ".pwz"="application/vnd.ms-powerpoint" ".r3t"="text/vnd.rn-realtext3d" ".ra"="audio/vnd.rn-realaudio" ".ram"="audio/x-pn-realaudio" ".ras"="application/x-ras" ".rat"="application/rat-file" ".rdf"="text/xml" ".rec"="application/vnd.rn-recording" ".red"="application/x-red" ".rgb"="application/x-rgb" ".rjs"="application/vnd.rn-realsystem-rjs" ".rjt"="application/vnd.rn-realsystem-rjt" ".rlc"="application/x-rlc" ".rle"="application/x-rle" ".rm"="application/vnd.rn-realmedia" ".rmf"="application/vnd.adobe.rmf" ".rmi"="audio/mid" ".rmj"="application/vnd.rn-realsystem-rmj" ".rmm"="audio/x-pn-realaudio" ".rmp"="application/vnd.rn-rn_music_package" ".rms"="application/vnd.rn-realmedia-secure" ".rmvb"="application/vnd.rn-realmedia-vbr" ".rmx"="application/vnd.rn-realsystem-rmx" ".rnx"="application/vnd.rn-realplayer" ".rp"="image/vnd.rn-realpix" ".rpm"="audio/x-pn-realaudio-plugin" ".rsml"="application/vnd.rn-rsml" ".rt"="text/vnd.rn-realtext" ".rtf"="application/msword" ".rtf"="application/x-rtf" ".rv"="video/vnd.rn-realvideo" ".sam"="application/x-sam" ".sat"="application/x-sat" ".sdp"="application/sdp" ".sdw"="application/x-sdw" ".sit"="application/x-stuffit" ".slb"="application/x-slb" ".sld"="application/x-sld" ".slk"="drawing/x-slk" ".smi"="application/smil" ".smil"="application/smil" ".smk"="application/x-smk" ".snd"="audio/basic" ".sol"="text/plain" ".sor"="text/plain" ".spc"="application/x-pkcs7-certificates" ".spl"="application/futuresplash" ".spp"="text/xml" ".ssm"="application/streamingmedia" ".sst"="application/vnd.ms-pki.certstore" ".stl"="application/vnd.ms-pki.stl" ".stm"="text/html" ".sty"="application/x-sty" ".svg"="text/xml" ".swf"="application/x-shockwave-flash" ".tdf"="application/x-tdf" ".tg4"="application/x-tg4" ".tga"="application/x-tga" ".tif"="image/tiff" ".tif"="application/x-tif" ".tiff"="image/tiff" ".tld"="text/xml" ".top"="drawing/x-top" ".torrent"="application/x-bittorrent" ".tsd"="text/xml" ".txt"="text/plain" ".uin"="application/x-icq" ".uls"="text/iuls" ".vcf"="text/x-vcard" ".vda"="application/x-vda" ".vdx"="application/vnd.visio" ".vml"="text/xml" ".vpg"="application/x-vpeg005" ".vsd"="application/vnd.visio" ".vsd"="application/x-vsd" ".vss"="application/vnd.visio" ".vst"="application/vnd.visio" ".vst"="application/x-vst" ".vsw"="application/vnd.visio" ".vsx"="application/vnd.visio" ".vtx"="application/vnd.visio" ".vxml"="text/xml" ".wav"="audio/wav" ".wax"="audio/x-ms-wax" ".wb1"="application/x-wb1" ".wb2"="application/x-wb2" ".wb3"="application/x-wb3" ".wbmp"="image/vnd.wap.wbmp" ".wiz"="application/msword" ".wk3"="application/x-wk3" ".wk4"="application/x-wk4" ".wkq"="application/x-wkq" ".wks"="application/x-wks" ".wm"="video/x-ms-wm" ".wma"="audio/x-ms-wma" ".wmd"="application/x-ms-wmd" ".wmf"="application/x-wmf" ".wml"="text/vnd.wap.wml" ".wmv"="video/x-ms-wmv" ".wmx"="video/x-ms-wmx" ".wmz"="application/x-ms-wmz" ".wp6"="application/x-wp6" ".wpd"="application/x-wpd" ".wpg"="application/x-wpg" ".wpl"="application/vnd.ms-wpl" ".wq1"="application/x-wq1" ".wr1"="application/x-wr1" ".wri"="application/x-wri" ".wrk"="application/x-wrk" ".ws"="application/x-ws" ".ws2"="application/x-ws" ".wsc"="text/scriptlet" ".wsdl"="text/xml" ".wvx"="video/x-ms-wvx" ".xdp"="application/vnd.adobe.xdp" ".xdr"="text/xml" ".xfd"="application/vnd.adobe.xfd" ".xfdf"="application/vnd.adobe.xfdf" ".xhtml"="text/html" ".xls"="application/vnd.ms-excel" ".xls"="application/x-xls" ".xlw"="application/x-xlw" ".xml"="text/xml" ".xpl"="audio/scpls" ".xq"="text/xml" ".xql"="text/xml" ".xquery"="text/xml" ".xsd"="text/xml" ".xsl"="text/xml" ".xslt"="text/xml" ".xwd"="application/x-xwd" ".x_b"="application/x-x_b" ".x_t"="application/x-x_t" #endregion出现提示框 string strFile="F://a.doc";//路径根据实际情况而定 if(!System.IO.File.Exists(strFile)) { Response.Write("<mce:script language='javascript'><!-- alert('对不起,文件不存在!'); // --></mce:script>"); return; } Response.Clear(); Response.ClearHeaders(); Response.Charset = "GB2312"; Response.ContentEncoding =System.Text.Encoding.UTF8; Response.ContentType = "application/octet-stream"; FileInfo fi=new FileInfo(strFile); Response.AddHeader("Content-Disposition","attachment; filename=" + HttpUtility.UrlEncode(fi.Name)) ; Response.AddHeader("Content-Length",fi.Length.ToString()); byte[] tmpbyte=new byte[1024*8]; FileStream fs=fi.OpenRead(); int count; while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0) { Response.BinaryWrite(tmpbyte); Response.Flush(); } fs.Close(); Response.End(); 直接在浏览器中打开 string strFile="F://a.doc";//路径根据实际情况而定 Response.Clear(); Response.ClearHeaders(); Response.Charset = "GB2312"; Response.ContentEncoding =System.Text.Encoding.UTF8; Response.ContentType = "application/msword"; Response.WriteFile(strFile); /** <summary> 2 /// 上传图片 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 /// <returns>操作结果</returns> 7 private bool ImageUpload(int nWidth,int nHeight) 8 { 9 System.Web.HttpFileCollection files = Request.Files; 10 System.Web.HttpPostedFile pf = files[0]; 11 string sOldPath = pf.FileName.ToString(); 12 int i = sOldPath.LastIndexOf("//"); 13 string sOldName = sOldPath.Substring(i+1,sOldPath.Length-i-1); 14 //"L"代表大图 && "S"代表缩略图 15 string sTimeNo = System.DateTime.Now.ToString("yyMMddHHmmss"); 16 string sNewNameL = "L"+sTimeNo+"_"+sOldName; 17 string sNewNameS = sNewNameL.Replace("L"+sTimeNo,"S"+sTimeNo); 18 string sNewPathL = Server.MapPath("../images/uploadfiles/")+sNewNameL; 19 string sNewPathS = Server.MapPath("../images/uploadfiles/")+sNewNameS; 20 if(System.IO.File.Exists(sNewPathL)||System.IO.File.Exists(sNewPathS)) 21 { 22 Page.RegisterStartupScript("FailToUpload","<mce:script type="text/javascript"><!-- alert('文件名已存在!'); // --></mce:script>"); 23 return false; 24 } 25 else 26 { 27 pf.SaveAs(sNewPathL);//保存原图 28 string strContentType = pf.ContentType.ToString(); 29 if(strContentType.IndexOf("image/")<0) 30 { 31 Page.RegisterStartupScript("KeyEro","<mce:script type="text/javascript"><!-- alert('无效的图片格式!'); // --></mce:script>"); 32 return false; 33 } 34 else 35 { 36 this.GetThumbNail(sOldPath,strContentType,sNewPathS,nWidth, nHeight); 37 this.Image1.ImageUrl = sNewPathS; 38 return true; 39 } 40 } 41 } 42 /** <summary> 43 /// 生成缩略图 44 /// </summary> 45 /// <param name="FileName">待上传文件的完全限定名</param> 46 /// <param name="strContentType">待上传文件的内容类型</param> 47 /// <param name="path">路径</param> 48 /// <param name="nWidth">宽</param> 49 /// <param name="nHeight">高</param> 50 private void GetThumbNail(string FileName,string strContentType,string path,int nWidth,int nHeight) 51 { 52 System.Drawing.Image oImage; 53 oImage = System.Drawing.Image.FromFile(FileName); 54 oImage = oImage.GetThumbnailImage(nWidth,nHeight,null,IntPtr.Zero); 55 // MemoryStream ms = new MemoryStream(); 56 // Response.ContentType = strContentType; 57 // oImage.Save(ms,strContentType); 58 oImage.Save(path,this.GetContenType(strContentType)); 59 // ms.WriteTo(Response.OutputStream); 60 } 61 /** <summary> 62 /// 获取保存文件的格式 63 /// </summary> 64 /// <param name="strContentType">待上传文件的内容类型</param> 65 /// <returns>文件格式</returns> 66 private System.Drawing.Imaging.ImageFormat GetContenType(string strContentType) 67 { 68 //只写少数几种格式 69 if(strContentType.ToString().ToLower()== "image/bmp") 70 return System.Drawing.Imaging.ImageFormat.Bmp; 71 else if(strContentType.ToString().ToLower()== "image/gif") 72 return System.Drawing.Imaging.ImageFormat.Gif; 73 else 74 return System.Drawing.Imaging.ImageFormat.Jpeg; 75 } For example: Response.ContentType = "image/jpeg";Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );Response.End();