asp.netで画像をアップロードして、ファイル名とパスを保存して、javascriptを利用して画像のプレビューを表示します.
15052 ワード
FileUploadコントロール
プロパティ:FileName:アップロードされたファイル名を取得します.
HasFile:アップロードされたファイルを選択しますか?
ContentLength:ファイルのサイズを取得し、単位はバイト(byte)です.
方法:Server.MapPath():サーバ上の物理経路SaveAs():指定されたフォルダにファイルを保存する
注意:デフォルトではアップロードファイルのサイズが4 MBに制限されています.web.co nfig.com mmentsを通じて、デフォルトの設定を変更したり、web.co.nfigファイルを変更したりして、アプリケーションのアップロード制限を変更できます.
execution Timeout:要求を実行する最大秒数を許可します.この機能はComplation要素の中でDebug属性がfalseである時にのみ有効になります.
enable:現在のノードおよびサブノードレベルでアプリケーションドメインを有効化するかどうかを指定して、着信要求を受け付けます.Falseであれば、アプリケーションは実際に閉じられている.デフォルトの値はTrueです.一般的には、ユーザーがこのサイトにアクセスできるかどうか(Http要求を許可するかどうか)
注意:アップロードファイルがmaxRequest Lengthサイズを超えると、ページが表示されない場合があります.
ファイルアップロードの種類を確認します.1)クライアントチェック(Javascript実装)(コントロールでオンリークリーンを使用します.)
2)サーバ端検査
プロパティ:FileName:アップロードされたファイル名を取得します.
HasFile:アップロードされたファイルを選択しますか?
ContentLength:ファイルのサイズを取得し、単位はバイト(byte)です.
方法:Server.MapPath():サーバ上の物理経路SaveAs():指定されたフォルダにファイルを保存する
注意:デフォルトではアップロードファイルのサイズが4 MBに制限されています.web.co nfig.com mmentsを通じて、デフォルトの設定を変更したり、web.co.nfigファイルを変更したりして、アプリケーションのアップロード制限を変更できます.
<httpRuntime maxRequestLength="10240" executionTimeout="150" enable="true"/>
要素説明:maxRequest Length:アップロードファイルのサイズを設定し、単位はkbです.execution Timeout:要求を実行する最大秒数を許可します.この機能はComplation要素の中でDebug属性がfalseである時にのみ有効になります.
enable:現在のノードおよびサブノードレベルでアプリケーションドメインを有効化するかどうかを指定して、着信要求を受け付けます.Falseであれば、アプリケーションは実際に閉じられている.デフォルトの値はTrueです.一般的には、ユーザーがこのサイトにアクセスできるかどうか(Http要求を許可するかどうか)
注意:アップロードファイルがmaxRequest Lengthサイズを超えると、ページが表示されない場合があります.
ファイルアップロードの種類を確認します.1)クライアントチェック(Javascript実装)(コントロールでオンリークリーンを使用します.
2)サーバ端検査
<script type="text/javascript" language="javascript">
function checkType() {
//
var fileName = document.getElementById("FileUpLoad1").value;
// String .
var seat = fileName.lastIndexOf(".");
// String .
var extension = fileName.substring(seat).toLowerCase();
//
//if(extension!=".jpg"&&extension!=".jpeg"&&extension!=".gif"&&extension!=".png"&&extension!=".bmp"){
//alert(" "+extension+" !");
//return false;
//}else{
//return true;
//}
var allowed = [".jpg", ".gif", ".png", ".bmp", ".jpeg"];
for (var i = 0; i < allowed.length; i++) {
if (!(allowed[i] != extension)) {
return true;
}
}
alert(" " + extension + " ");
return false;
}
</script>
コントロールコード:<asp:FileUpload ID="FileUpload1" runat="server" onpropertychange="show1(this.value)" />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" OnClientClick="checkType()" Text=" " />
アップロードボタンイベント: protected void Button1_Click(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString;
con = new SqlConnection(constr);
if (this.FileUpload1.HasFile)
{
//
// string strName = FileUpload1.PostedFile.FileName; // FileUpload ,FileUpload1 ID
// if (strName != "") //
// {
// int i = strName.LastIndexOf(".");// “.“
// string ext = strName.Substring(i);//
// string newName = Guid.NewGuid().ToString();// ,
// string relativePath = "admin\\images";//
// string absolutePath = Server.MapPath("~\\admin\\images"); //
//if (!Directory.Exists(absolutePath))// images ,
//{
// Directory.CreateDirectory(absolutePath);// images
//}
// string newFileName = absolutePath + "\\" + newName + ext;//
// fileUpload.PostedFile.SaveAs(newFileName);//
// txtImageUrl.Text = relativePath + "\\" + newName + ext;//
// }
// 10Mb
if (this.FileUpload1.PostedFile.ContentLength < 10485760)
{
try
{
//
this.FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Img/")
+ this.FileUpload1.FileName);
/* -> :FileUpLoad1.PostedFile.FileName
* :FileUpLoad1.FileName?
* ( )
* FileUpLoad1.FileName .
*/
// ( ):
//FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);
this.Label1.Text = " !";
string sql = string.Format("insert into Img(ImgUrl,ImgSize,ImgName) values('{0}','{1}','{2}')", Server.MapPath("~/Img/") + this.FileUpload1.FileName, this.FileUpload1.PostedFile.ContentLength, this.FileUpload1.FileName);
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = sql;
con.Open();
SqlTransaction tran = con.BeginTransaction();
cmd.Transaction = tran;
int i=0;
try
{
i= cmd.ExecuteNonQuery();
tran.Commit();
}
catch(Exception ex)
{
tran.Rollback();
}
finally
{
con.Close();
}
if (i == 1)
{
this.Response.Write("<Script Language='JavaScript'>window.alert(' " + i.ToString() + " ')</script>");
}
}
catch (Exception ex)
{
this.Label1.Text = " , !";
//lblMessage.Text += ex.Message;
}
}
else
{
this.Label1.Text = " 10MB!";
}
}
else
{
this.Label1.Text = " !";
}
}
画像のプレビュー効果 <asp:FileUpload ID="FileUpload1" runat="server" onpropertychange="show(this.value)"/>
<asp:Image ID="Image1" runat="server" />
アップロードコントロールにonpropertychange=「show(this.value)」イベントを書き込み、jsのshow関数を呼び出して自分のパラメータをjsに送る.<script type="text/javascript">
function show(id)
{
document.getElementById("Image1").src=id;
}
</script>
以下のコードはサムネイルを表示する場所に使用されます.</div>
<div id="divview" WIDTH: 166px; HEIGHT: 190px">
</div>
下にサムネイルのjsコードを表示します. <script type="text/javascript">
function show1(upimg)
{
var dd=document.getElementById("divview");
dd.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = upimg;
dd.style.width = 166;
dd.style.height = 190;
dd.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
}
</script>
完全なaspxファイル<%@ Page Language="C#" AutoEventWireup="true" CodeFile=" .aspx.cs" Inherits=" " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" onpropertychange="show1(this.value)" />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" OnClientClick="checkType()" Text=" " />
<script type="text/javascript">
function show(id)
{
document.getElementById("Image1").src=id;
}
</script>
<script type="text/javascript">
function show1(upimg)
{
var dd=document.getElementById("divview");
dd.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = upimg;
dd.style.width = 166;
dd.style.height = 190;
dd.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
}
</script>
<script type="text/javascript" language="javascript">
function checkType() {
//
var fileName = document.getElementById("FileUpLoad1").value;
// String .
var seat = fileName.lastIndexOf(".");
// String .
var extension = fileName.substring(seat).toLowerCase();
//
//if(extension!=".jpg"&&extension!=".jpeg"&&extension!=".gif"&&extension!=".png"&&extension!=".bmp"){
//alert(" "+extension+" !");
//return false;
//}else{
//return true;
//}
var allowed = [".jpg", ".gif", ".png", ".bmp", ".jpeg"];
for (var i = 0; i < allowed.length; i++) {
if (!(allowed[i] != extension)) {
return true;
}
}
alert(" " + extension + " ");
return false;
}
</script>
</div>
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div>
<asp:Image ID="Image1" runat="server" />
</div>
<div id="divview" WIDTH: 166px; HEIGHT: 190px">
</div>
</form>
</body>
</html>
完全なASPX.CCファイルusing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
public partial class : System.Web.UI.Page
{
SqlConnection con;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString;
con = new SqlConnection(constr);
if (this.FileUpload1.HasFile)
{
//
// string strName = FileUpload1.PostedFile.FileName; // FileUpload ,FileUpload1 ID
// if (strName != "") //
// {
// int i = strName.LastIndexOf(".");// “.“
// string ext = strName.Substring(i);//
// string newName = Guid.NewGuid().ToString();// ,
// string relativePath = "admin\\images";//
// string absolutePath = Server.MapPath("~\\admin\\images"); //
//if (!Directory.Exists(absolutePath))// images ,
//{
// Directory.CreateDirectory(absolutePath);// images
//}
// string newFileName = absolutePath + "\\" + newName + ext;//
// fileUpload.PostedFile.SaveAs(newFileName);//
// txtImageUrl.Text = relativePath + "\\" + newName + ext;//
// }
// 10Mb
if (this.FileUpload1.PostedFile.ContentLength < 10485760)
{
try
{
//
this.FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Img/")
+ this.FileUpload1.FileName);
/* -> :FileUpLoad1.PostedFile.FileName
* :FileUpLoad1.FileName?
* ( )
* FileUpLoad1.FileName .
*/
// ( ):
//FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);
this.Label1.Text = " !";
string sql = string.Format("insert into Img(ImgUrl,ImgSize,ImgName) values('{0}','{1}','{2}')", Server.MapPath("~/Img/") + this.FileUpload1.FileName, this.FileUpload1.PostedFile.ContentLength, this.FileUpload1.FileName);
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = sql;
con.Open();
SqlTransaction tran = con.BeginTransaction();
cmd.Transaction = tran;
int i=0;
try
{
i= cmd.ExecuteNonQuery();
tran.Commit();
}
catch(Exception ex)
{
tran.Rollback();
}
finally
{
con.Close();
}
if (i == 1)
{
this.Response.Write("<Script Language='JavaScript'>window.alert(' " + i.ToString() + " ')</script>");
}
}
catch (Exception ex)
{
this.Label1.Text = " , !";
//lblMessage.Text += ex.Message;
}
}
else
{
this.Label1.Text = " 10MB!";
}
}
else
{
this.Label1.Text = " !";
}
}
}