Ejemplo n.º 1
0
    public void uploadFile()
    {
        //保存的路径
        string savePath = SWFUrlOper.GetFormStringParamValue("path");
        //旧文件名,方便删除
        string oldFileName = SWFUrlOper.GetFormStringParamValue("fn");
        //是否需要小图
        bool isSmall = SWFUrlOper.GetFormStringParamValue("small").ToLower() == "true" ? true : false;
        //是否需要水印
        bool isWaterMark = SWFUrlOper.GetFormStringParamValue("wm").ToLower() == "true" ? true : false;
        //小图宽度
        int smallWidth = SWFUrlOper.GetFormIntParamValue("sw");
        //小图高度
        int smallHeight = SWFUrlOper.GetFormIntParamValue("sh");
        //图片扩展名
        string[] imgExtension = new string[] { "jpg", "gif", "png", "bmp" };
        //已上传文件的文件名
        string nameList = SWFUrlOper.GetFormStringParamValue("data");
        try
        {
            // 获取上传的文件信息
            HttpPostedFile file_upload = Request.Files["Filedata"];
            string extension = string.Empty;
            string fileName = string.Empty;
            //bool isImg = false;
            if (file_upload.ContentLength > 0)
            {
                fileName = file_upload.FileName;
                if (fileName.IndexOf(".") != -1)
                    extension = fileName.Substring(fileName.LastIndexOf(".") + 1, fileName.Length - fileName.LastIndexOf(".") - 1).ToLower();

                SWFUploadFile uf = new SWFUploadFile();
                if (isSmall)
                {
                    uf.SmallPic = true;
                    uf.MaxWith = smallWidth == 0 ? uf.MaxWith : smallWidth;
                    uf.MaxHeight = smallHeight == 0 ? uf.MaxHeight : smallHeight;
                }
                uf.IsWaterMark = isWaterMark;
                int state = 0;
                string newFileName = uf.SaveFile(file_upload, savePath, oldFileName, ref state);

                //0:上传成功.  1:没有选择要上传的文件.  2:上传文件类型不符.   3:上传文件过大  -1:应用程序错误.
                int statusCode = 500;
                switch (state)
                {
                    case 0:
                        statusCode = 200;
                        break;
                    case 1:
                        statusCode = 200;
                        break;
                    default:
                        statusCode = 500;
                        break;
                }

                List<SWFUploadFileInfo> listufi = new List<SWFUploadFileInfo>();
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<SWFUploadFileInfo>));
                if (nameList != string.Empty)
                    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(nameList)))
                        listufi = (List<SWFUploadFileInfo>)serializer.ReadObject(ms);//反序列化

                #region 得到图片尺寸
                int imgWidth = 0;
                int imgHeight = 0;
                foreach (string item in imgExtension)
                {
                    if (item == extension && file_upload.InputStream != null)
                    {
                        System.Drawing.Image img = System.Drawing.Image.FromStream(file_upload.InputStream);
                        imgWidth = img.Width;
                        imgHeight = img.Height;
                        img.Dispose();
                    }
                }
                #endregion

                listufi.Add(new SWFUploadFileInfo()
                {
                    Id = listufi.Count,
                    FileName = newFileName,
                    OriginalFileName = fileName,
                    Path = savePath,
                    Width = imgWidth,
                    Height = imgHeight
                });
                string postData = "";
                //序列化
                using (MemoryStream stream = new MemoryStream())
                {
                    serializer.WriteObject(stream, listufi);
                    postData = Encoding.UTF8.GetString(stream.ToArray());
                }

                Response.StatusCode = statusCode;
                //状态存入cookie
                if (statusCode==200) CookiesHelp.Add("uploadStatus", statusCode.ToString());
                Response.Write(postData);
            }
        }
        catch (Exception e)
        {
            //内部服务器错误
            Response.StatusCode = 500;
            Response.Write("内部服务器错误:" + e.Message.ToString());
        }
        HttpContext.Current.ApplicationInstance.CompleteRequest();
    }
Ejemplo n.º 2
0
 /// <summary>
 /// 删除文件
 /// </summary>
 /// <returns></returns>
 public void DelFile()
 {
     string name = SWFUrlOper.GetStringParamValue("name");
     string msg = new SWFUploadFile().Delete(SWFUrlOper.GetStringParamValue("f"), SWFUrlOper.GetStringParamValue("name"), true);
     Response.Write(msg);
     Response.End();
 }