[Uploadify.htm]
<!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>
<title>파일업로드 : jQuery + Uploadify + ASP.NET</title>
<link href="uploadify.css" rel="stylesheet" type="text/css" />
<script src="../../js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>
<script src="jquery.uploadify.v2.1.0.js" type="text/javascript"></script>
<script src="swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
// Uploadify 파일 업로드 컨트롤 : Flash가 설치가 되어있어야 함
$('#fileInput').uploadify({
'uploader' : 'uploadify.swf', // Uploadify 컨트롤 지정
'script' : 'Uploadify.ashx', // 서버측 스크립트, ASP.NET, ASP, PHP, JSP
'cancelImg': 'cancel.png', // 취소 이미지
'auto' : false, // true면 파일선택시 바로 자동으로 업로드됨
'folder': '/Uploads', // 업로드할 폴더 : 가상디렉터리 + 업로드폴더
// 업로드 완료시 처리 :
// 주요 속성은 http://www.uploadify.com/documentation/ 참고
'onComplete': function (event, queueID, fileObj, response, data) {
$('#lblFile').append('<a href=/WebJQuery' + fileObj.filePath + '>'
+ fileObj.name + '</a><br>');
}
});
// 버튼 클릭시 업로드
$('#btn').click(function () { $('#fileInput').uploadifyUpload(); });
});
</script>
</head>
<body>
<input id="fileInput" name="fileInput" type="file" />
<input type="button" id="btn" value="업로드" />
<div id="lblFile"></div>
</body>
</html>
-------------------------------------------------------------------------------------
[Uploadify.ashx]
<%@ WebHandler Language="C#" Class="Uploadify" %>
using System;
using System.Web;
public class Uploadify : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// Filedata로 넘겨온 파일 값 받기
HttpPostedFile file = context.Request.Files["Filedata"];
// 저장할 폴더
string targetDirectory = System.IO.Path.Combine(
context.Request.PhysicalApplicationPath,
context.Request["folder"].Replace("/", ""));
// 저장할 폴더 + 파일명
string targetFilePath = System.IO.Path.Combine(
targetDirectory, file.FileName);
// 파일 저장(업로드)
file.SaveAs(targetFilePath);
context.Response.Write("RedPlus");
}
public bool IsReusable {
get {
return false;
}
}
}
[출처] : http://holland14.tistory.com/538
2. 파일을 업로드할경우 변수를 넘겨야하는 경우가 있다.
1)의 소스대로 하면 변수는 $(document).ready()상에 지정해야하는데 데이터를 미리 받아오기전에는
변수를 넘기기 힘들다.
그래서
// 버튼 클릭시 업로드
$('#btn').click(function () { $('#fileInput').uploadifyUpload(); });
이부분에 변수를 넘길 수 있는 처리를 추가해야한다.
var _obj = $('#fileInput');
_obj.uploadifySettings('scriptData', { 'code1': 'data01', 'code2': 'data02' });
_obj.uploadifyUpload();
이부분을 처리해주면 업로드 할때 변수(code1,code2)의 값을 전달할 수 있다.