最近我在做一个关于图片上传 显示的项目 正好这里也有好多兄弟在发这方面的帖子
所以我想收集一下关于图片上传 显示这方面的资料 最好是 SQL数据库 加 C#代码的 (别的数据库和语言的也可以)大家可以提供链接
提供代码
提供思路
或者完整的项目下面是主要内容 只给一部分也谢谢主要内容就是 图片 如何上传到服务器
图片 如何显示给客户端
图片 怎样在客户端生成缩略图
图片 如何做成链接 点小图放大为大图
图片如何放在DataGrid里
如何对图片的一些细节处理 等等等等等等等等等等等等等等等等等等等等等反正凡是跟图片有关的项目 代码 思路 网站 尽管放过来 我照单全收 呵呵有意者加我QQ:8453605 或者发我信箱:[email protected]嫌分少的 再开N帖也不是问题
所以我想收集一下关于图片上传 显示这方面的资料 最好是 SQL数据库 加 C#代码的 (别的数据库和语言的也可以)大家可以提供链接
提供代码
提供思路
或者完整的项目下面是主要内容 只给一部分也谢谢主要内容就是 图片 如何上传到服务器
图片 如何显示给客户端
图片 怎样在客户端生成缩略图
图片 如何做成链接 点小图放大为大图
图片如何放在DataGrid里
如何对图片的一些细节处理 等等等等等等等等等等等等等等等等等等等等等反正凡是跟图片有关的项目 代码 思路 网站 尽管放过来 我照单全收 呵呵有意者加我QQ:8453605 或者发我信箱:[email protected]嫌分少的 再开N帖也不是问题
解决方案 »
- 请问能不能将编译后的dll文件不被其它项目引用
- 网站发布后,部分用户打不开网站
- Asp.net DataList里面如何弹出面板
- 100求解...dos环境下面再次编译asp.net网站...
- ASP.net SQL分页的问题
- 关于单击文本框弹出一个日历问题
- 找不到文件或程序集名称“System.Data.SqlServerCe, Version=3.0.3600.0, Culture=neutral, PublicKeyToken=3BE235DF1C8
- 问2个datagrid的问题
- 有没有连结Oracle数据库的完整例子啊?
- npoi导出的问题
- asp.net中的web控件部分属性怎么没有提示?
- -=一个关系到我在这公司生存的问题,高手帮我看看=-
关键字 缩略图,上传图片
出处
<script language="VB" runat="server">
Sub UploadFile(sender As Object, e As EventArgs)If FileUp.PostedFile.ContentLength = 0 Then
FileInfo.Visible = False
Exit Sub
Else
FileInfo.Visible = True
FDisplay1.Visible = True
End IfFSize.Text ="上传文件大小"+ CStr(FileUp.PostedFile.ContentLength/1024)+"KB"
FName.Text = "已上传文件名:"+FileUp.PostedFile.FileName+"<br>"+FName.Text'写入数据库
on error resume next
dim myconn as sqlconnection
dim mycomm as sqlcommand
dim sql as string
dim id as integer
Dim image,anewimage As System.Drawing.Image
dim width,height,newwidth,newheight as integer
Dim callb As System.Drawing.Image.GetThumbnailImageAbort
myConn=New sqlconnection(ConfigurationSettings.AppSettings("数据库"))
myconn.open()
sql="insert into picture (姓名,班级,介绍,属性) values ('"&request.cookies("dgxyl").values("dgxylname")&"','"&request.cookies("dgxyl").values("dgxylbj")&"','"&trim(request("TextBox1"))&"','"&request("r1")&"')"
Mycomm=New sqlcommand(sql,myconn)
mycomm.executenonquery()
myconn.close()Dim myCommand As New SqlCommand("select top 1 id from picture order by id desc", myConn)
myCommand.Connection.Open()
Dim myReader As SqlDataReader=mycommand.executereader()
if myReader.Read() then
id=myReader("id")
end if
myconn.close()
'保存图片
FileUp.PostedFile.SaveAs( Server.MapPath("\classpic\")&cstr(id)&".jpg" )
'生成缩略图
image=System.Drawing.Image.FromFile(Server.MapPath("/classpic/"+cstr(id)+".jpg"))
width=image.Width
height=image.height
if width>height then
newwidth=250
newheight=image.height/image.Width*newwidth
else
newheight=250
newwidth=image.Width/image.height*newheight
end if
response.write("id="+cstr(id)+"width="+cstr(Width)+";height="+cstr(height)+" ")
response.write("newwidth="+cstr(newwidth)+";newheight="+cstr(newheight)+"<br>")aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr())
aNewImage.Save(Server.MapPath("/smallpic/"+cstr(id)+".jpg"))
image.Dispose()
Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, "\" )
Dim FileName As String = FileSplit(FileSplit.Length-1)
Dim Exts() As String = Split( FileName, "." )
Dim Ext As String = LCase(Exts(Exts.Length-1))FDisplay.Text = "<A Target='_blank' HREF='/classpic/"&cstr(id)&".jpg"& "'>查看上传文件</A>"
FDisplay1.text="<a href='/picture/default.asp?bj="&cstr(request.cookies("dgxyl").values("dgxylbj"))&"'>返回</a>"
End Sub
</script>
<SCRIPT language=JavaScript>
<!--
var requestsubmitted=false;
function guestbook_Validator(theForm)
{
//检查是否从新提交
if (requestsubmitted==true){
alert("你已经提交了留言,请等待服务器应答!");
return(false);
}
requestsubmitted=true;return (true);
}
//-->
</SCRIPT>
<Html>
<Body BgColor=White>
<H3 align="center">请正确填写下面各项</h3>
<Hr></H3>
<Div id="FileInfo" Visible="False" runat="server">
<Asp:Label id="FSize" runat="server"/><br>
<Asp:Label id="FName" runat="server"/><br>
<Asp:Label id="FDisplay" runat="server"/>
<Asp:Label id="FDisplay1" runat="server"/>
</Div>
<Form Enctype="multipart/form-data" onsubmit="return guestbook_Validator(this)" runat="server">
上传文件
<Input Type="File" id="FileUp" runat="server" size="20"><br>
图片属性:<input type="radio" value="<%=request.cookies("dgxyl").values("dgxylbj")%>" name="R1" checked>本班<input type="radio" value="全校" name="R1">全校(本班则只在本班显示,全校则在全校显示)<P>
图片说明:<br>
<asp:TextBox id="TextBox1" runat="server" Width="233px" Height="141px">
</asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="请输入图片说明">
</asp:RequiredFieldValidator><br>
<Asp:button id="Upload" OnClick="UploadFile" Text="上传图片" runat="server"/>
</form>
<Hr>
<p>注意:</p>
<ol>
<li><b>严禁上传污染环境的照片,否则账号将被删除!</b></li>
<li><font color="#808000"><b>请详细填写照片说明,图片说明不详细将会被视为乱传图片,将会被删除!</b></font></li>
</ol>
<p> </p></Body>
</Html>
conn.Open();
SqlCommand cmd=new SqlCommand("insert into fuser values ('1a','1b',@i)",conn);
byte[] ib=new Byte[60000];
FileStream fs=new FileStream(@"D:\windows temp\temp\1.jpg",FileMode.Open ,FileAccess.Read );
fs.Read(ib,0,60000);
cmd.Parameters.Add("@i",SqlDbType.Image,(int)fs.Length);
cmd.Parameters["@i"].Value=ib;
cmd.ExecuteNonQuery();
conn.Close();-------------------------------------------------------
从数据库读图片到pictureboxSqlConnection conn=new SqlConnection(@"data source=chenyuming2004\VSdotNET;uid=sa;pwd=cym;database=lhf");
conn.Open();
SqlCommand cmd=new SqlCommand("select 照片 from fuser where password='1b'",conn);
SqlDataReader reader=cmd.ExecuteReader();
reader.Read();
MemoryStream buf=new MemoryStream((byte[])reader[0]);
Image image=Image.FromStream(buf,true);
pictureBox1.Image=image;
strFileName=Path.GetFileName(strFileName); Stream fileDataStream=myfile.PostedFile.InputStream;
int fileLength=myfile.PostedFile.ContentLength;
byte[] fileData=new byte[fileLength];
fileDataStream.Read(fileData,0,fileLength); string fileType=myfile.PostedFile.ContentType; Conn.Open(); SqlCommand Cmd=new SqlCommand("insert_doctable",Conn.Connection);
Cmd.CommandType=CommandType.StoredProcedure;
Cmd.Parameters.Add(new SqlParameter("@zytitle",SqlDbType.VarChar,100));
Cmd.Parameters.Add(new SqlParameter("@doctitle",SqlDbType.NVarChar,200));
Cmd.Parameters.Add(new SqlParameter("@docdate",SqlDbType.DateTime));
// Cmd.Parameters.Add(new SqlParameter("@nodeid",SqlDbType.NVarChar));
Cmd.Parameters.Add(new SqlParameter("@doctype",SqlDbType.NVarChar));
Cmd.Parameters.Add(new SqlParameter("@doctext",SqlDbType.Image));
Cmd.Parameters.Add(new SqlParameter("@docsize",SqlDbType.Int));
Cmd.Parameters.Add(new SqlParameter("@upname",SqlDbType.NVarChar)); Cmd.Parameters["@zytitle"].Value=tbTitle.Text;
Cmd.Parameters["@doctitle"].Value=strFileName;
Cmd.Parameters["@docdate"].Value=DateTime.Now;
// Cmd.Parameters["@nodeid"].Value=Request.Params["id"];
Cmd.Parameters["@doctype"].Value=fileType;
Cmd.Parameters["@doctext"].Value=fileData;
Cmd.Parameters["@docsize"].Value=fileLength;
Cmd.Parameters["@upname"].Value=Session["UserName"].ToString(); Cmd.ExecuteNonQuery();
Conn.Close();
Imports System.Web
Imports System.Drawing
Imports System.IO
Imports System.Drawing.ImagingPublic Class Thumbnail
Inherits System.Web.UI.Page
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Button1 As System.Web.UI.WebControls.Button#Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "<h3>在ASP.NET里轻松实现缩略图</h3>"
Button1.Text = "上载并显示缩略图"
End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyFileColl As HttpFileCollection = HttpContext.Current.Request.Files
Dim MyPostedFile As HttpPostedFile = MyFileColl.Item(0)
If LCase(MyPostedFile.ContentType.ToString()).IndexOf("image") < 0 Then
Response.Write("无效的图形格式。")
Exit Sub
End If
GetThumbNail(MyPostedFile.FileName, 100, 100, MyPostedFile.ContentType.ToString(),_
False, MyPostedFile.InputStream)
End Sub Private Function GetImageType(ByVal strContentType) As System.Drawing.Imaging.ImageFormat
Select Case (strContentType.ToString().ToLower())
Case "image/pjpeg"
GetImageType = System.Drawing.Imaging.ImageFormat.Jpeg
Case "image/gif"
GetImageType = System.Drawing.Imaging.ImageFormat.Gif
Case "image/bmp"
GetImageType = System.Drawing.Imaging.ImageFormat.Bmp
Case "image/tiff"
GetImageType = System.Drawing.Imaging.ImageFormat.Tiff
Case "image/x-icon"
GetImageType = System.Drawing.Imaging.ImageFormat.Icon
Case "image/x-png"
GetImageType = System.Drawing.Imaging.ImageFormat.Png
Case "image/x-emf"
GetImageType = System.Drawing.Imaging.ImageFormat.Emf
Case "image/x-exif"
GetImageType = System.Drawing.Imaging.ImageFormat.Exif
Case "image/x-wmf"
GetImageType = System.Drawing.Imaging.ImageFormat.Wmf
Case Else
GetImageType = System.Drawing.Imaging.ImageFormat.MemoryBmp
End Select
End Function Private Sub GetThumbNail(ByVal strFileName, ByVal iWidth, ByVal iheight, ByVal strContentType, _
ByVal blnGetFromFile, ByVal ImgStream)
Dim oImg As Image
If blnGetFromFile Then
oImg = oImg.FromFile(strFileName)
Else
oImg = oImg.FromStream(ImgStream)
End If
oImg = oImg.GetThumbnailImage(iWidth, iheight, Nothing, (New IntPtr()).Zero)
Dim strGuid As String = (New Guid()).NewGuid().ToString().ToUpper()
Dim strFileExt As String = strFileName.Substring(strFileName.LastIndexOf("."))
'保存到本地
'oImg.Save(Server.MapPath("images") + "\" + strGuid + strFileExt, GetImageType(strContentType))
'直接输出url文件
'Response.Redirect("images/" + strGuid + strFileExt)
'以下显示在屏幕上
Response.ContentType = strContentType
Dim MemStream As New MemoryStream()
' 注意:这里如果直接用 oImg.Save(Response.OutputStream, GetImageType(strContentType))
' 对不同的格式可能会出错,比如Png格式。
oImg.Save(MemStream, GetImageType(strContentType))
MemStream.WriteTo(Response.OutputStream)
End SubEnd ClassC#using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing.Imaging;namespace eMeng.Exam
{
/// <summary>
/// Thumbnail 的摘要说明。
/// </summary>
public class Thumbnail : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Label1.Text = "<h3>在ASP.NET里轻松实现缩略图</h3>";
Button1.Text = "上载并显示缩略图"; } #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;
HttpPostedFile MyPostedFile = MyFileColl[0]; if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image") < 0)
{
Response.Write("无效的图形格式。");
return;
}
GetThumbNail(MyPostedFile.FileName, 100, 100,
MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);
}
private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)
{
if ((strContentType.ToString().ToLower()) == "image/pjpeg")
{
return System.Drawing.Imaging.ImageFormat.Jpeg;
}
else if ((strContentType.ToString().ToLower()) == "image/gif")
{
return System.Drawing.Imaging.ImageFormat.Gif;
}
else if ((strContentType.ToString().ToLower()) == "image/bmp")
{
return System.Drawing.Imaging.ImageFormat.Bmp;
}
else if ((strContentType.ToString().ToLower()) == "image/tiff")
{
return System.Drawing.Imaging.ImageFormat.Tiff;
}
else if ((strContentType.ToString().ToLower()) == "image/x-icon")
{
return System.Drawing.Imaging.ImageFormat.Icon;
}
else if ((strContentType.ToString().ToLower()) == "image/x-png")
{
return System.Drawing.Imaging.ImageFormat.Png;
}
else if ((strContentType.ToString().ToLower()) == "image/x-emf")
{
return System.Drawing.Imaging.ImageFormat.Emf;
}
else if ((strContentType.ToString().ToLower()) == "image/x-exif")
{
return System.Drawing.Imaging.ImageFormat.Exif;
}
else if ((strContentType.ToString().ToLower()) == "image/x-wmf")
{
return System.Drawing.Imaging.ImageFormat.Wmf;
}
else
{
return System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
} private void GetThumbNail(string strFileName, int iWidth, int iheight,
string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
{
System.Drawing.Image oImg;
if (blnGetFromFile)
{
oImg = System.Drawing.Image.FromFile(strFileName);
}
else
{
oImg = System.Drawing.Image.FromStream(ImgStream);
}
oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
string strGuid = System.Guid.NewGuid().ToString().ToUpper();
string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
Response.ContentType = strContentType;
MemoryStream MemStream = new MemoryStream();
oImg.Save(MemStream, GetImageType(strContentType));
MemStream.WriteTo(Response.OutputStream);
} }
}
//得到提交的文件
Stream fileDataStream = filupload.PostedFile.InputStream; //得到文件大小
int fileLength = filupload.PostedFile.ContentLength; //创建数组
byte[] fileData = new byte[fileLength]; //把文件流填充到数组
fileDataStream.Read(fileData,0,fileLength); //得到文件名字
string fileTitle = filupload.PostedFile.FileName;
//得到文件类型
string fileType = filupload.PostedFile.ContentType;
//构建数据库连接,SQL语句,创建参数
SqlCommand myCommand = new SqlCommand ("INSERT INTO Flow_Attachments (Name,Type,Image)" + "VALUES (@Name,@Type,@fileData)", myConnection); myCommand.Parameters.Add("@Name",SqlDbType.NVarChar);
myCommand.Parameters["@Name"].Value = fileTitle;
myCommand.Parameters.Add("@Type",SqlDbType.NVarChar);
myCommand.Parameters["@Type"].Value = fileType;
myCommand.Parameters.Add("@fileData",SqlDbType.Image);
myCommand.Parameters["@fileData"].Value = fileData;
//打开连接,执行
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
//下载需要打开一个页面,在Page_Load里加
SqlCommand command = new SqlCommand("SELECT * from Flow_Attachments where ID=" + Request.QueryString["AttachmentID"],myConnection);
myConnection.Open();
SqlDataReader dr = command.ExecuteReader();
if(dr.Read())
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(dr[1].ToString()));
Response.BinaryWrite((byte[])dr[3]);
}
dr.Close();
myConnection.Close();//表结构
CREATE TABLE [ISS].[flow_Attachments] (
[ID] [int] IDENTITY (1, 1) NOT NULL , /*ID*/
[Name] [nvarchar] (100) NULL , /*名称*/
[Type] [nvarchar] (50) NULL , /*类型*/
[Image] [image] NULL , /*附件内容*/
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
2. 在ASP时代要上传一个文件是很麻烦的事,有了ASP.Net事情就变得简单.这里我给出一个实例,希望能对朋友们有帮助.文件上传的实例, 来自http://www.chinabs.net">中国BS网<%@ Import Namespace="System.IO" %>
<%@ page Language="C#" debug="true" %>
<html>
<head>
<title>上传文件 , http://www.chinabs.net </title>
<script language="C#" runat="server">
//This method is called when the "upload" button id pressed
public void UploadFile(object sender , EventArgs E)
{
//检查上传文件不为空
if(myFile.PostedFile!=null)
{
string nam = myFile.PostedFile.FileName ;
//取得文件名(抱括路径)里最后一个"."的索引
int i= nam.LastIndexOf(".");
//取得文件扩展名
string newext =nam.Substring(i);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+myFile.PostedFile.ContentLength.ToString();
//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
myFile.PostedFile.SaveAs(Server.MapPath("\\upload\\"+newname+newext));
//得到这个文件的相关属性:文件名,文件类型,文件大小
fname.Text=myFile.PostedFile.FileName;
fenc.Text=myFile.PostedFile.ContentType ;
fsize.Text=myFile.PostedFile.ContentLength.ToString();
}
}</script>
</head>
<body>
<center>
<h3> 文件上传的实例, 来自<a href="http://www.chinabs.net">中国BS网</a></h3>
<form id="uploderform" method="post" action="FileUpload.aspx" enctype="multipart/form-data" runat="server" >
<table border="1" cellspacing="2" cellpadding="2" >
<tr> <td><h5>选择要上传的文件:</h5></td</tr>
<tr>
<td>
<input type="file" id="myFile" runat="server" NAME="myFile">
</td>
</tr>
<tr><td>
<input type="button" value="上 传" OnServerClick="UploadFile" runat="server" ID="Button1" NAME="Button1">
</td></tr>
</table>
</form>
<br>
<br>
<table border="1" cellspacing="2">
<tr><td><b>文件资料</b></td>
<td> </td>
</tr>
<tr>
<td>文件名 :</td>
<td><asp:label id="fname" text="" runat="server" /></td></tr>
<tr>
<td>文件类型 :</td>
<td><asp:label id="fenc" runat="server" /></td></tr>
<tr>
<td>文件大小 :(in bytes)</td>
<td><asp:label id="fsize" runat="server" /></td></tr>
</table>
<br>
<br>
<br>
</center>
</body>
</html>
4.在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表单,上传的文件数量没有限制。代码如下:MultiUpload.aspx<%@ Page Language="vb" AutoEventWireup="false" Codebehind="MultiUpload.aspx.vb"
Inherits="aspxWeb.MultiUpload" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>多文件上传</title>
<script language="JavaScript">
function addFile()
{
var str = '<INPUT type="file" size="50" NAME="File">'
document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)
}
</script>
</HEAD>
<body>
<form id="form1" method="post" runat="server" enctype="multipart/form-data">
<center>
<asp:Label Runat="server" ID="MyTitle"></asp:Label>
<P id="MyFile"><INPUT type="file" size="50" NAME="File"></P>
<P>
<input type="button" value="增加(Add)" onclick="addFile()">
<asp:Button Runat="server" Text="上传" ID="Upload"></asp:Button>
<input onclick="this.form.reset()" type="button" value="重置(ReSet)">
</P>
</center>
<P align="center">
<asp:Label id="strStatus" runat="server" Font-Names="宋体" Font-Bold="True"
Font-Size="9pt" Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>
</P>
</form>
</body>
</HTML>后代码:MultiUpload.aspx.vbPublic Class MultiUpload
Inherits System.Web.UI.Page
Protected WithEvents Upload As System.Web.UI.WebControls.Button
Protected WithEvents MyTitle As System.Web.UI.WebControls.Label
Protected WithEvents strStatus As System.Web.UI.WebControls.Label#Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MyTitle.Text = "<h3>多文件上传</h3>"
Upload.Text = "开始上传"
If (Me.IsPostBack) Then Me.SaveImages()
End Sub Private Function SaveImages() As System.Boolean
'遍历File表单元素
Dim files As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files '状态信息
Dim strMsg As New System.Text.StringBuilder("上传的文件分别是:<hr color=red>")
Dim iFile As System.Int32
Try
For iFile = 0 To files.Count - 1
'检查文件扩展名字
Dim postedFile As System.Web.HttpPostedFile = files(iFile)
Dim fileName, fileExtension As System.String
fileName = System.IO.Path.GetFileName(postedFile.FileName)
If Not (fileName = String.Empty) Then
fileExtension = System.IO.Path.GetExtension(fileName)
strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>")
strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>")
strMsg.Append("上传文件的文件名:" + fileName + "<br>")
strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>")
'可根据扩展名字的不同保存到不同的文件夹
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName)
End If
Next
strStatus.Text = strMsg.ToString()
Return True
Catch Ex As System.Exception
strStatus.Text = Ex.Message
Return False
End Try
End Function
End Class
包括:
1、图片的上传下载
2、图片的格式转换
3、图片的旋转、放大缩小、加水印
4、图片的特殊效果处理,含高斯模糊、水波、球镜、阴影、立体等
5、图片的合成(有很多功能尚无法实现)
6、水晶按钮、立体文字的处理(也只实现部分功能)等有待解决的问题:
1、图片的分层效果(类似PHOTOSHOP的Layer和Mask)[已找到部分解决方案,但仍有待处理]
2、文字的Emboss Bevel等处理
3、如何实现Illustrator,CoreDraw的部分效果
4、图片的任意变形,就象PHOTOSHOP中的Transform菜单下的很多效果一样,目前可以实现其中的几种变形,任意变形仍无法解决。
5、如何实现工具箱功能,类似VS,DreamWeaver,CoreDraw的左边可浮动的工具箱?
6、客户端FTP上传问题?
7、多图片压缩上传后的解压问题?
8、如何保存为矢量图形格式?欢迎大家探讨。