zoukankan
html css js c++ java
图片上传/下载,DOC.xls文档下载的方法
上传:
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,
0
,
1024
);
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);
}
}
}
查看全文
相关阅读:
把CentOS改成中文
String,StringBuffer,StringBuilder三者性能对比
在Linux上部署安装C/C++开发环境
Kali Linux安装ssh服务
Kali VirtualBox安装增强功能
CentOS安装docker
CentOS安装jdk11
Java基本数据类型
奥卡姆剃刀定律在Java代码中的体现——记一次LeetCode刷题心得
Java 实现简易登录注册功能
原文地址:https://www.cnblogs.com/weichuo/p/1206620.html
最新文章
idea快捷键--日常使用汇集
【转】使用chrome console检查css selector/xpath的有效性
java使用问题
sql使用记录
有点颓废
leetcode203. 移除链表元素
leetcode414. 第三大的数
leetcode485. 最大连续1的个数
leetcode83. 删除排序链表中的重复元素
leetcode160-相交链表
热门文章
leetcode191. 位1的个数
leetcode26. 删除排序数组中的重复项
leetcode35-搜索插入位置
学习路上的感悟——没项目经验的坏处
JS基础笔记——基础篇
JS基础笔记——基础常识篇
我的第一篇博客——致当下与将来
yum update 报错 error: rpmdbNextIterator
C语言指针与自增详解
CentOS下将man设置为中文
Copyright © 2011-2022 走看看