/** * 上传文件的主处理方法 * @param HttpContext * @param string * @param string[] *@param int * @return Hashtable */ public Hashtable upFile(HttpContext cxt, string pathbase, string[] filetype, int size) { // pathbase = pathbase + "/"; uploadpath = cxt.Server.MapPath(pathbase);//获取文件上传路径 var newsID = WebParmKit.GetQuery("NewsID", ""); try { uploadFile = cxt.Request.Files[0]; originalName = uploadFile.FileName; //目录创建 createFolder(); //格式验证 if (checkType(filetype)) { //不允许的文件类型 state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b"; } //大小验证 if (checkSize(size)) { //文件大小超出网站限制 state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236"; } //保存图片 if (state == "SUCCESS") { filename = NameFormater.Format(cxt.Request["fileNameFormat"], originalName); var ss = cxt.Request["fileNameFormat"]; var testname = filename; var ai = 1; while (File.Exists(uploadpath + testname)) { testname = Path.GetFileNameWithoutExtension(filename) + "_" + ai++ + Path.GetExtension(filename); } uploadFile.SaveAs(uploadpath + testname); string str = cxt.Request.Url.GetLeftPart(UriPartial.Authority); str += cxt.Request.ApplicationPath; URL = str + pathbase.Replace("~", "") + testname; // Logger.Debug("Uploader.cs URL:" + URL); } } catch (Exception) { // 未知错误 state = "\u672a\u77e5\u9519\u8bef"; URL = ""; } return(getUploadInfo()); }
/** * 上传文件的主处理方法 * @param HttpContext * @param string * @param string[] *@param int * @return Hashtable */ public Hashtable upFile(HttpContext cxt, string pathbase, string[] filetype, int size) { pathbase = pathbase + "/"; uploadpath = WebHelper.MapPath(pathbase);//获取文件上传路径 try { uploadFile = cxt.Request.Form.Files[0]; originalName = uploadFile.FileName; //目录创建 createFolder(); //格式验证 if (checkType(filetype)) { //不允许的文件类型 state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b"; } //大小验证 if (checkSize(size)) { //文件大小超出网站限制 state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236"; } //保存图片 if (state == "SUCCESS") { filename = NameFormater.Format(cxt.Request.Query["fileNameFormat"], originalName); var testname = filename; var ai = 1; while (File.Exists(uploadpath + testname)) { testname = Path.GetFileNameWithoutExtension(filename) + "_" + ai++ + Path.GetExtension(filename); } FileStream fs = new FileStream(uploadpath + testname, FileMode.Create); uploadFile.CopyTo(fs); URL = pathbase + testname; } } catch (Exception) { // 未知错误 state = "\u672a\u77e5\u9519\u8bef"; URL = ""; } return(getUploadInfo()); }
/** * 上传文件的主处理方法 * @param HttpContext * @param string * @param string[] *@param int * @return Hashtable */ public Hashtable upFile(HttpContext cxt, string pathbase, string[] filetype, int size) { pathbase = pathbase + "/"; uploadpath = cxt.Server.MapPath(pathbase);//获取文件上传路径 try { uploadFile = cxt.Request.Files[0]; originalName = uploadFile.FileName; //目录创建 createFolder(); //格式验证 if (checkType(filetype)) { //不允许的文件类型 state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b"; } //大小验证 if (checkSize(size)) { //文件大小超出网站限制 state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236"; } //保存图片 if (state == "SUCCESS") { string basestr = string.Empty; filename = NameFormater.Format(cxt.Request["fileNameFormat"], originalName); var testname = filename; var ai = 1; while (File.Exists(uploadpath + testname)) { testname = Path.GetFileNameWithoutExtension(filename) + "_" + ai++ + Path.GetExtension(filename); } int iBufferSize = 1024000; //byte[] buffer = new byte[iBufferSize]; //var binaryReader = new BinaryReader(uploadFile.InputStream); long lFileSize = uploadFile.ContentLength; int file_size = (int)Math.Ceiling((double)(lFileSize / iBufferSize));//文件大小(M) int rest = (int)(lFileSize % iBufferSize); //int iTempCount = 0; //while (iTempCount <iTotalCount) //{ // binaryReader.Read(buffer, 0, iBufferSize); // //将字节转换成字符 // basestr += Convert.ToBase64String(buffer); // iTempCount++; //} //byte[] buffer_rest = new byte[rest-1]; //binaryReader.Read(buffer_rest, 0, rest-1); //basestr += Convert.ToBase64String(buffer_rest); var binaryReader1 = new BinaryReader(uploadFile.InputStream); if (file_size < 4) { byte[] bytes = binaryReader1.ReadBytes(uploadFile.ContentLength); string bytes64Str = Convert.ToBase64String(bytes); URL = upFileWeb.upfilebyte(bytes64Str, Path.GetExtension(filename)); } else { //Web.ff.UpFileWeb upFileWeb1 = new Web.ff.UpFileWeb(); Web.ServiceUpFile.UpFileWeb ws = new Web.ServiceUpFile.UpFileWeb(); ws.Timeout = -1; //byte[] bytes = binaryReader1.ReadBytes(uploadFile.ContentLength); filename = getGUID() + Path.GetExtension(filename); for (int ii = 0; ii <= file_size; ii++) { if (ii == file_size) { byte[] buffer_rest = new byte[rest]; binaryReader1.Read(buffer_rest, 0, rest); URL = ws.upfile(buffer_rest, filename); } else { byte[] buffer_rest = new byte[1024000]; binaryReader1.Read(buffer_rest, 0, 1024000); URL = ws.upfile(buffer_rest, filename); } } } } } catch (Exception ex) { // 未知错误 string message = ex.Message; state = "\u672a\u77e5\u9519\u8bef"; URL = ""; } return(getUploadInfo()); }