asp.net 대량 다 중 파일 업로드 솔 루 션
6833 단어 asp.net다 중 파일 업로드파일 업로드
주로 실현 되 는 기능 은 다음 과 같다.
1.여러 파일 을 선택 하여 업로드 하고 한 파일 의 업로드 진 도 를 표시 합 니 다.
2.모든 파일 의 전체 업로드 진 도 를 표시 합 니 다.
3.모든 업로드 파일 의 총 크기 표시
4.업로드 하기 전에 하나 이상 의 파일 을 삭제 할 수 있 습 니 다.(Ctrl 또는 Shift 키 를 누 르 면)
5.ASP.NET 페이지 호출 생 성 된 swf 파일 을 서버 에 비동기 로 업로드 합 니 다.
먼저 프레젠테이션 의 캡 처 를 보 겠 습 니 다.다음 과 같 습 니 다.
대체로 위 캡 처 와 마찬가지 로 ASP.NET 에서 어떻게 호출 되 는 지,FLEX 의 내부 코드 는 상세 하 게 설명 하지 않 겠 습 니 다.FLEX 안의 코드 가 많 지 않 습 니 다.글 뒤에 다운 로드 를 제공 하고 flex 3.0 또는 4.0 으로 실행 할 수 있 습 니 다.
그 중 하 나 는 여러 번 선택 하여 삭제 한 곳 에서 임의로 여러 번 선택 하여 삭제 하 는 정확성 을 확보 하기 위해 선택 한 색인 항목 의 내림차 순 서 를 정렬 하고 배열 의 가장 큰 곳 에서 삭제 할 때마다 반복 적 으로 삭제 할 때 색인 이 경 계 를 초과 하지 않도록 해 야 한 다 는 것 을 설명 한다.
function deleteItem():void{
var selectItems:Array = process_list.selectedItems;
var selectIndex:Array = process_list.selectedIndices;
selectIndex = selectIndex.sort(2);//
var iCount:int = selectItems.length;
var sizeMum:Number = 0;
for(var i:int=0;i<iCount;i++){
info.splice(selectIndex[i],1);
fileRef.fileList.splice(selectIndex[i],1);// ,
}
for(var j:Number=0;j<fileRef.fileList.length;j++){
sizeMum+=fileRef.fileList[j].size;
}
process_list.dataProvider = info;
tip_txt.text=" "+fileRef.fileList.length+" "+(sizeMum/(1024*1024)).toFixed(4).toString()+"MB";
if(info.length<=0){
delete_btn.enabled = false;
}
}
호출 도 간단 합 니 다.asp 튜 토리 얼 x 페이지 에 생 성 된 swf 파일 을 불 러 옵 니 다.여기 서 생 성 된 파일 이름 은 upload.swf 입 니 다.flex 에 내 장 된 swfobject.js 의 방법 으로 불 러 옵 니 다.다음 과 같 습 니 다.
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> </title>
<style type="text/css " media="screen">
html, body { height:100%; }
body { margin:0; padding:0; overflow:auto; text-align:center;
background-color: #ffffff; }
#flashContent { display:none; }
</style>
<script type="text/ " src="swfobject.js"></script>
<script type="text/javascript" >
var swfVersionStr = "10.0.0";
var xiSwfUrlStr = "playerProductInstall.swf";
var flashvars = {};
flashvars.url = "SaveFile.aspx?Param=ID|100,NAME| ";
var params = {};
params.quality = "high";
params.bgcolor = "#ffffff";
params.allowscriptaccess = "sameDomain";
params.allowfullscreen = "true";
var attributes = {};
attributes.id = "upload";
attributes.name = "upload";
attributes.align = "middle";
swfobject.embedSWF(
"upload.swf", "flashContent",
"587", "370",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
function uploadCompelete(){
// ,
document.getElementById('btnUpload').disabled = false;
}
function submitForm(){
thisMovie("upload").uploadfile();
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function disabledButton()
{
document.getElementById('btnUpload').disabled = true;
}
</script>
</head>
<body>
<div id="flashContent" style="width:587px; height:380px">
</div>
<br />
<input id="btnUpload" style="width: 71px" type="button" value=" " onclick="submitForm()" />
</body>
</html>
, , upload.swf uploadfile , flex uploadHandler :
//===================
//
//===================
internal function uploadHandler():void{
if(uploadFile_num!=0) return;
if(process_list.dataProvider==null || info.length<=0){
Alert.show(" !"," ");
return;
}
else
{
ExternalInterface.call("disabledButton"); //
}
for(var i:Number=0;i<fileRef.fileList.length;i++){
upload_size_total+=fileRef.fileList[i].size;
}
uploadfile(uploadFile_num);
add_btn.enabled = false; //
delete_btn.enabled = false;//
}
SaveFile.aspx , :
protected void Page_Load(object sender, EventArgs e)
{
//string param = Request["Param"];
string path = Server.MapPath("files/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//HttpFileCollection files = Request.Files;
//string fileName = string.Empty;
//for (int i = 0; i < files.Count; i++)
//{
// fileName = Path.GetFileName(files[i].FileName).ToLower();
// files[i].SaveAs(path + fileName);
//}
HttpPostedFile file = Request.Files["Filedata"]; // ,
if (file != null && file.ContentLength > 0)
{
file.SaveAs(path+Request.Form["filename"]);
}
}
파일 스 트림 으로 받 고 저장 하 는 것 이 아니 기 때문에 큰 파일 을 올 리 는 것 이 라면 페이지 가 100%올 라 간 것 을 볼 수 있 지만 이 처리 저장 페이지 가 잠시 멈 추고 수신 과 저장 이 완 료 된 후에 야 프론트 페이지 가 반응 할 수 있 습 니 다.또 하 나 는 전달 하 는 매개 변수 가 중국 어 를 포함 하고 있다 면 config 인 코딩 형식 이 utf-8 형식 이 필요 하지만 기 존의 시스템 은 gb 2312 형식 일 수 있 습 니 다.utf-8 로 바 꾸 면 시스템 에 영향 을 미 칠 수 있 습 니 다.웹 config 를 따로 만 들 고 업로드 할 때 단독 config 를 읽 을 수 있 습 니 다.
이상 은 asp.net 에서 파일 업로드 코드 를 대량으로 선택 한 것 입 니 다.여러분 이 ASP.NET 에서 다 중 파일 을 업로드 할 때 발생 하 는 문 제 를 해결 할 수 있 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.