示例#1
0
        /// <summary>
        /// 保存上传的文件
        /// </summary>
        /// <param name="postFileBase"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        private File SaveHttpPostFile(HttpPostedFileBase postFileBase, string path)
        {
            System.IO.Stream     uploadStream = null;
            System.IO.FileStream fs           = null;

            File file = new File();

            try
            {
                uploadStream = postFileBase.InputStream;
                int    bufferLen  = 1024;
                byte[] buffer     = new byte[bufferLen];
                int    contentLen = 0;

                file.Name        = System.IO.Path.GetFileName(postFileBase.FileName);
                file.ContentType = postFileBase.ContentType;
                file.RealPath    = path + Guid.NewGuid().ToString();
                fs = new System.IO.FileStream(file.RealPath, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite);

                while ((contentLen = uploadStream.Read(buffer, 0, bufferLen)) != 0)
                {
                    fs.Write(buffer, 0, bufferLen);
                    fs.Flush();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (null != fs)
                {
                    fs.Close();
                }
                if (null != uploadStream)
                {
                    uploadStream.Close();
                }
            }
            file.Size = GetFileSize(file.RealPath);
            file.Md5  = Md5Util.GetMD5HashFromFile(file.RealPath);

            return(file);
        }