文件上传 简单处理 .

Html:head部分 js判断:

View Code
<script>
function Check_FileType()
{
   var str=document.getElementById("FileUpload1").value;  //获取id为FileUpload1的值
    var pos = str.lastIndexOf(".");                        //字符处理取" ."的后缀
    var lastname = str.substring(pos,str.length)           //截取
    if (lastname.toLowerCase()!=".jpg" && lastname.toLowerCase()!=".gif")
    {
     alert("您上传的文件类型为"+lastname+",图片必须为.jpg,.gif类型");
     return false;       
  }
 else 
  {
   return true;
   }
} 
 </script> 

页面源代码:

 

View Code
 <asp:FileUpload ID="FileUpload1" runat="server"  />
<asp:Button ID="bt_upload" runat="server"   OnClientClick="return Check_FileType()"  OnClick="bt_upload_Click" Text="上传" />

cs代码:

View Code
try
    {
        if (FileUpload1.PostedFile.FileName == "")
          {
               this.lb_info.Text = "请选择文件!";
           }
          else
            {
               string filepath = FileUpload1.PostedFile.FileName;                                           
               string filename = filepath.Substring(filepath.LastIndexOf("\\")+1);
               string serverpath = Server.MapPath( "images/")+Guid.NewGuid() + filename; //这里加了guid不用担心插入同一张图片报错
                 FileUpload1.PostedFile.SaveAs(serverpath);
               this.lb_info.Text = "上传成功!";
            }
      }
     catch (Exception ex)
      {
          throw ex;  
       }

 
或者:
       string urlpath = string.Empty;
      string url = this.fileupload.PostedFile.FileName;   //上传时的文件路径
       if (fileupload.HasFile)
        {
          string saveurl = AppDomain.CurrentDomain.BaseDirectory + "QuestionMsg\\QuestionFlowMsg\\UplodExcel\\";  //保存路径
            string filename = url.Substring(url.LastIndexOf('\\') + 1);   //保存文件名
             if (!Directory.Exists(saveurl))
               Directory.CreateDirectory(saveurl);
             this.fileupload.PostedFile.SaveAs(saveurl + filename);
              urlpath = saveurl + filename;
        }

或者:
 try
        {
            if (Fupload.PostedFile.FileName=="")
            {
               msg = "请选择文件!";
            }
            else
            {
                string filepath = Fupload.PostedFile.FileName;
                string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
                string serverpath = Server.MapPath("images/") + Guid.NewGuid() + filename;
                string fileName ="F:\\Auto\\images\\";
                if (!Directory.Exists(fileName))
                {
                    Directory.CreateDirectory(fileName);
                    if (!Directory.Exists(fileName))
                        return;
                }
                Fupload.PostedFile.SaveAs(serverpath);
                msg = "上传成功!";

            }
        }
        catch (Exception ex)
        {
            throw ex; 

        }
    }

 

一般处理程序 接受文件post

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using SMS.Common;

namespace SMS.FileUpload
{
    /// <summary>
    /// FileUpload 的摘要说明
    /// </summary>
    public class FileUpload : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.Buffer = true;
            context.Response.ExpiresAbsolute = DateTime.Now.AddSeconds(0);
            context.Response.AddHeader("Pragma", "No-Cache");
            context.Response.Expires = 0;
            //context.Response.ContentType = "text/plain";
            //context.Response.Charset = "utf-8";

            string action = context.Request["action"];                          //获取操作类型
            switch (action)
            {
                default: ResponseFileUpload(context); break;
            }
        }


        private void ResponseFileUpload(HttpContext context)
        {
            var path = "";
            var fileName = "";
            FileStream fstream = null;
            try
            {
                StreamReader stw = new StreamReader(HttpContext.Current.Request.InputStream);
                string PostData = stw.ReadToEnd();

                var p = DynamicJson.Parse(PostData.ToString());

                var content = p.Content;
              //  fileName = p.Name;

                //var content =context.Request["Content"];
                //fileName = context.Request["Name"];
                string[] Extension = p.Name.Split('.');

                fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "." + Extension[1];

                path = HttpContext.Current.Server.MapPath(string.Format("../UserFile/{0}", DateTime.Now.ToString("yyyyMMdd")));
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                if (content!=null)
                {
                    byte[] imageBytes = Convert.FromBase64String(content);
                    fstream = File.Create(path +"/"+ fileName, imageBytes.Length);
                    fstream.Write(imageBytes, 0, imageBytes.Length);
                    fstream.Close();
                }
                ResponseMsg(context, string.Format("UserFile/{0}/{1}", DateTime.Now.ToString("yyyyMMdd"), fileName));
            }
            catch 
            {
                context.Response.Write("{ \"result\":-1}");
                fstream.Close();
            }
        }

        public void ResponseMsg(HttpContext context, string path)
        {
            context.Response.Write("{ \"result\":\"" + path + "\"}");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

posted @ 2012-06-26 16:59  s_p  阅读(194)  评论(0编辑  收藏  举报