アップロード利器-SWFUpload
13335 ワード
SWFUploadアップロードコンポーネント
SWFUpload 最初はVinter webb.seだった 開発されたクライアントファイルアップロードツール.これはjavascriptとflashを連携して、ブラウザで伝統的なアップロードタグより優れた機能を提供します.SWFUploadの主な特性:ファイル閲覧ダイアログで複数のファイルを選択できます. AJAXスタイルのアップロードは、 を更新しなくても大丈夫です.
アップロード中の各種イベント
画像のサイズはクライアントで調節できます.
使用するクラスの名前空間は各種jsライブラリ(i.e.jQuery、Prottypeなど)に対応しています.
Flash 9 and Flash 10(2.2.0バージョン後、flash 8へのサポートをキャンセル)対応最近のプロジェクトでは画像をアップロードする機能はSWFUploadを使っています.個人的にはその機能は非常に強いと思います.プログレスバー、キューアップロード、画像スクリーン、マルチスレッドアップロードなどの機能をサポートします.
SWFUploadアップロード画像機能:
1ダウンロードSWFUpload:http://files.cnblogs.com/xufeiyang/SWFUpload.rarこのバージョンは2.2です.最新版は自分で検索できます.
2.swfupload.jsを導入して、swfupload.queue.js、hander.jsはページに着きます.
3.変数を定義し、設定対象を設定します.
4.doImageUpload.asx処理プログラムを作成する
SWFUpload 最初はVinter webb.seだった 開発されたクライアントファイルアップロードツール.これはjavascriptとflashを連携して、ブラウザで伝統的なアップロードタグより優れた機能を提供します.SWFUploadの主な特性:
アップロード中の各種イベント
画像のサイズはクライアントで調節できます.
使用するクラスの名前空間は各種jsライブラリ(i.e.jQuery、Prottypeなど)に対応しています.
Flash 9 and Flash 10(2.2.0バージョン後、flash 8へのサポートをキャンセル)対応最近のプロジェクトでは画像をアップロードする機能はSWFUploadを使っています.個人的にはその機能は非常に強いと思います.プログレスバー、キューアップロード、画像スクリーン、マルチスレッドアップロードなどの機能をサポートします.
SWFUploadアップロード画像機能:
1ダウンロードSWFUpload:http://files.cnblogs.com/xufeiyang/SWFUpload.rarこのバージョンは2.2です.最新版は自分で検索できます.
2.swfupload.jsを導入して、swfupload.queue.js、hander.jsはページに着きます.
3.変数を定義し、設定対象を設定します.
var swfUploader; //
$(function () {
var settings = {
flash_url: "/SWFUpload/Flash/swfupload.swf",
upload_url: "/bgAdmin/ajax/doImageUpload.ashx",
post_params: { "ASPNETSESSION": "NO" }, //
file_size_limit: "5 MB",
file_types: "*.jpg;*.png;*.gif;*.bmp;*jpeg", // ,
file_types_description: "Images",
file_upload_limit: 0,
file_queue_limit: 0,
// custom_settings: {
// progressTarget: "fsUploadProgress",
// cancelButtonId: "btnCancel"
// },
debug: false,
// Button settings
button_image_url: "/SWFUpload/Images/TestImageNoText_65x80.png",
button_width: "100",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span class="theFont"> </span>',
button_text_style: ".theFont { font-size: 16; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js hander.js
file_queue_error_handler: fileQueueError,
file_dialog_complete_handler: fileDialogComplete,
upload_progress_handler: uploadProgress,
upload_error_handler: uploadError,
upload_success_handler: uploadSuccess,
upload_complete_handler: uploadComplete
// Queue plugin event
}
swfUploader= new SWFUpload(settings);
});
:
<span id="spanButtonPlaceHolder"></span>
<input id="imageUrlAdd" type="text" maxlength="100" readonly="readonly" value=" " />
hander.jsの内容は添付ファイルの中にあります.ここでは主に自分を満足させるために、uplloadSuccessを修正しました. // handers
function uploadSuccess(file, serverData) {
try {
var jsonStr = $.parseJSON(serverData);
if (jsonStr.success) {
setImageUrl(jsonStr.imagePath);
} else if (jsonStr.timeout) {
window.location.href = "/bgAdmin/Login/login.html";
} else {
alert(data.error);
}
} catch (ex) {
this.debug(ex);
}
}
function setImageUrl(imgPath){ $('('∀mageUrlAdd').val(imgPath); }
3.次は一般的な処理手順を書きます.asp.netで処理したファイルはdoImageUpload.asxです.パラメータupladuurl:「/bgAdmin/ajax/doImageUpload.asx」などです.4.doImageUpload.asx処理プログラムを作成する
context.Response.ContentType = "text/json";
//QL.BLL.images imagesBll = new QL.BLL.images();
var dic = new Dictionary<string, object>();
string jsonStr = "[]";
string errmsg = "";
HttpPostedFile file = context.Request.Files["Filedata"];//
string fileName = Path.GetFileName(file.FileName);//
string fileLoadName = "";
string fileExt = Path.GetExtension(fileName);//
if (fileExt.Equals(".jpg", StringComparison.InvariantCultureIgnoreCase)
|| fileExt.Equals(".png", StringComparison.InvariantCultureIgnoreCase)
|| fileExt.Equals(".gif", StringComparison.InvariantCultureIgnoreCase)
|| fileExt.Equals(".bmp", StringComparison.InvariantCultureIgnoreCase)
|| fileExt.Equals(".jpeg", StringComparison.InvariantCultureIgnoreCase))
{
// , /UploadImg/ / /
string dircStr = "/images/Carousel/" + DateTime.Now.Year + "-" + DateTime.Now.Month + "/";
// , Path.GetDirectoryName(dircStr),
Directory.CreateDirectory(Path.GetDirectoryName(context.Server.MapPath(dircStr)));
// , guid Guid.NewGuid().ToString()
DateTime now = DateTime.Now;
fileLoadName = dircStr + fileName.Substring(0, fileName.LastIndexOf('.'))
+ "-" + now.Day + "-" + now.Minute + "-" + now.Second + "-" + now.Millisecond + fileExt;
//
file.SaveAs(context.Server.MapPath(fileLoadName));
dic.Add("success", true);
dic.Add("imagePath", fileLoadName); //
}
else
{
dic.Add("success", false);
errmsg += " !";
}
// json,
dic.Add("error", errmsg);
jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(dic);
context.Response.Write(jsonStr);
終了:これで皆さんは簡単な画像アップロード機能を完成できるはずです.時間が短いです.もしよろしければ、写真を撮っても大丈夫です.http://demo.swfupload.org/v220/index.htmを参照してもいいです. もっと多くの機能を学ぶ.