アップロードの心得
14245 ワード
私たちはバックグラウンド管理ページを作るとき、通常は一つのファイルをアップロードしますが、複数のページをアップロードする場合、一つずつアップロードコードを作りに行きますか?あなたがまだいるなら、oh shit!
私の考えはアップロード機能のページを作り、iframeで現在のアップロードページを入れ子にし、アップロードページでアップロード成功時にアップロードされるurlをjavascriptでwindow.opennerオブジェクトページの値を通知することです.
htmlページは以下の通りです.File_Upload
.aspx
私の考えはアップロード機能のページを作り、iframeで現在のアップロードページを入れ子にし、アップロードページでアップロード成功時にアップロードされるurlをjavascriptでwindow.opennerオブジェクトページの値を通知することです.
htmlページは以下の通りです.File_Upload
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> </title>
</head>
<body><iframe src="Yeml_File_Upload.aspx" width="100%" height="30" frameborder="0">
</iframe>
</body>
</html>
.aspx
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> </title>
</head>
<body>
<form id="form1" runat="server">
<!--
author:
createTime:2013-08-08
descript: , , window.opener 。
upladSucess(upoad_url) , parent upoad_url。
-->
<asp:FileUpload ID="file_upload" runat="server" />
<asp:Button ID="btn_upload" runat="server" Text=" " OnClick="btn_upload_Click" />
<input type="hidden" id="hidd_upoad_url" runat="server" />
</form>
</body>
</html>
protected void btn_upload_Click(object sender, EventArgs e)
{
// String path = Server.MapPath("~/UploadedImages/");
if (file_upload.HasFile)
{
bool fileOK = false;
String fileExtension = Path.GetExtension(file_upload.FileName).ToLower();
String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileOK = true;
}
}
if (!fileOK)
{
return;
}
string path = string.Format("/UploadImages/jhrz_images/{0}/", DateTime.Now.ToString("yyyyMMdd"));
if (!Directory.Exists(Server.MapPath("~" + path)))
Directory.CreateDirectory(Server.MapPath("~" + path));
string file_name = string.Format("{0}{1}{2}", path, Guid.NewGuid(), fileExtension);
file_upload.SaveAs(Server.MapPath(file_name));
hidd_upoad_url.Value = file_name;
ClientScript.RegisterStartupScript(GetType(), "upload_success", "<script type='text/javascript'>parent.upladSucess('" + file_name + "');</script>", false);
}
}
例えば1. <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> </title>
<script type="text/javascript">
/**
* callback
*/
function upladSucess(img_url) {
// alert(img_url);
document.getElementById("img1").setAttribute("src",img_url);
}
</script>
</head>
<body>
<img id="img1" src="" />
<iframe src="Yeml_File_Upload.aspx" width="100%" height="30" frameborder="0">
</iframe>
</body>
</html>
残りは2.html、3.htmlがあれば、***.aspxはファイルをアップロードする必要がある時、私達は各ページで書き直すだけです./**
* callback
*/
function upladSucess(img_url) {
// alert(img_url);
document.getElementById("img1").setAttribute("src",img_url);
}
私たちのページの割り当て操作をロジックにすればいいです.