图片上传/下载,DOC.xls文档下载的方法

上传:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
       #region 上传文件
        
protected string UpPicFile(System.Web.UI.WebControls.FileUpload FileUpControl, ref string fileType)
        {
            
if (FileUpControl.HasFile)
            {
                
string strErr = "";

                
#region 验证
                
if (FileUpControl.PostedFile == null)
                {
                    strErr 
+= "对不起,上传文件不能为空!\\n";
                }
                
int size = FileUpControl.PostedFile.ContentLength;//大小
                if (size < 1)
                {
                    strErr 
+= "对不起,上传文件不能为空!\\n";
                }
                
if (size > 10485760)
                {
                    strErr 
+= "对不起,文件大小不能大于10M!\\n";
                }
                
if (strErr != "")
                {
                    QDHotel.Common.MessageBox.Show(
this, strErr);
                    
return null;
                }
                
#endregion

                
string UploadFileType = FileUpControl.PostedFile.ContentType;
                
string UpFileName = FileUpControl.FileName;
                
string picname = DateTime.Now.ToString("yyyyMMddHHmmss"+ UpFileName;
                fileType 
= UploadFileType;
                
#region 不同类型UploadFileType

                
switch (UploadFileType)
                {
                    
case "image/gif":
                    
case "image/bmp":
                    
case "image/pjpeg":
                        {
                            Stream StreamObject 
= FileUpControl.PostedFile.InputStream;//建立数据流对像
                            System.Drawing.Image myImage = System.Drawing.Image.FromStream(StreamObject);
                            
int w = myImage.Width;
                            
int h = myImage.Height;
                        }
                        
break;

                    
case "application/msword":
                    
case "application/vnd.ms-excel":
                        
break;


                    
default:
                        strErr 
+= "对不起,不允许该文件格式上传!\\n";
                        
break;
                }
                
#endregion

                
if (strErr != "")
                {
                    QDHotel.Common.MessageBox.Show(
this, strErr);
                    
return null;
                }

                
try
                {
                    
string path = ADUploadFolder + picname;
                    path 
= Server.MapPath(path);
                    FileUpControl.PostedFile.SaveAs(path);
                    
return picname;
                }
                
catch //(Exception ex)
                {
                    
return null;
                }

            }
            
else
            {
                
return null;
            }
        }
        
#endregion

 

 

下载

    private   void  ViewImage( string  fileType,  string  fileName,  bool  forceDownload)
        
{
            
if (fileType == "application/msword" || fileType == "application/vnd.ms-excel")
            
{
                
//Response.Redirect("UploadPic/" + fileName);
                
//return;
                System.IO.FileStream r = new System.IO.FileStream(Server.MapPath("UploadPic/" + fileName), System.IO.FileMode.Open);
                
//设置基本信息 
                Response.Buffer = false;
                Response.AddHeader(
"Connection""Keep-Alive");
                Response.ContentType 
= "application/octet-stream";
                Response.AddHeader(
"Content-Disposition""attachment;filename=" + System.IO.Path.GetFileName(Server.MapPath("UploadPic/" + fileName)));
                Response.AddHeader(
"Content-Length", r.Length.ToString());


                
while (true)
                
{
                    
//开辟缓冲区空间 
                    byte[] buffer = new byte[1024];
                    
//读取文件的数据 
                    int leng = r.Read(buffer, 01024);
                    
if (leng == 0)//到文件尾,结束 
                        break;
                    
if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入 
                        Response.BinaryWrite(buffer);
                    
else
                    
{
                        
//读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块 
                        byte[] b = new byte[leng];
                        
for (int i = 0; i < leng; i++)
                            b[i] 
= buffer[i];
                        Response.BinaryWrite(b);
                    }

                }

                r.Close();
//关闭下载文件 
                Response.End();//结束文件下载 
            }

            Response.Clear();
            
if (forceDownload)
            
{
                Response.AppendHeader(
"Content-Disposition""attachment; filename=" + fileName);
            }

            
else
            
{
                Response.AppendHeader(
"Content-Disposition""filename=" + fileName);
            }


            
using (System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(picDic + fileName)))
            
{
                
if (image.RawFormat.Equals(ImageFormat.Bmp))
                
{
                    Response.ContentType 
= "image/bmp";
                }

                
else
                
{
                    
if (image.RawFormat.Equals(ImageFormat.Gif))
                    
{
                        Response.ContentType 
= "image/gif";
                    }

                    
else
                    
{
                        
if (image.RawFormat.Equals(ImageFormat.Jpeg))
                        
{
                            Response.ContentType 
= "image/jpeg";
                        }

                        
else
                        
{
                            
if (image.RawFormat.Equals(ImageFormat.Png))
                            
{
                                Response.ContentType 
= "image/png";
                            }

                            
else
                            
{
                                Response.ContentType 
= "application/octet-stream";
                            }

                        }

                    }


                    image.Save(Response.OutputStream, image.RawFormat);
                }

            }

        }

转载于:https://www.cnblogs.com/weichuo/archive/2008/05/24/1206620.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值