js는 업로드 파일 크기와 형식을 결정합니다. code_javascript 기술

WBOY
풀어 주다: 2016-05-16 17:15:39
원래의
964명이 탐색했습니다.

파일을 업로드할 때 비동기 업로드 효과를 얻기 위해 일반적으로 iframe 형식으로 파일을 업로드하도록 선택하지만 ajax와 같은 서버에서 반환된 데이터를 처리하여 파일 크기와 파일 스타일을 조정할 수 없습니다. 그래서 우리는 일반적으로 js를 사용하여 업로드된 파일의 크기와 형식에 대한 예비 판단을 내린 다음 서버에서 또 다른 판단을 내리는 것을 생각합니다(브라우저가 스크립트 파일 실행을 거부하는 것을 방지하기 위해).
다음은 js를 사용하여 파일 크기를 결정하는 방법을 제공합니다.

코드 복사 코드는 다음과 같습니다.

var url = window.location.href, type = url .substr(url.lastIndexOf('/') 1);
// console.log(type)
var allowedType = {
".bmp":1, ".png" :1, ".jpeg":1, ".jpg":1, ".gif":1,
".mp3":2, ".wma":2, ".wav":2, ". amr": 2,
".rm":3, ".rmvb":3, ".wmv":3, ".avi":3, ".mpg":3, ".mpeg":3, ".mp4 ":3
};
varallowSize = {1:2097152, 2:5242880, 3:20971520}; var errMsg = {
"0": '이미지 형식은 다음과 같습니다. 올바르지 않습니다
'
'오디오 형식이 잘못되었습니다
'
'동영상 형식이 잘못되었습니다
',
"1" : '사진 형식이 잘못되었습니다',
"2" : '오디오 형식이 잘못되었습니다.',
"3" : '비디오 형식이 잘못되었습니다.'
}
var errSizeMsg = {
'1': '사진 파일은 다음과 같습니다. 2M 미만 ',
'2':'오디오 파일이 5M 미만입니다.',
'3':'비디오 파일이 20M 미만입니다.',
}
function checkFileType(filename, type ){
var ext = filename.substr(filename.lastIndexOf(".")).toLowerCase(),
res =allowType[ext]
if (type == 0) {
return !!res;
} else {
반환 유형 == res;
}
}
function checkFileSize(target, size){
var isIE = /msie/i. test(navigator.userAgent) && !window.opera;
var fileSize = 0;
if (isIE && !target.files)
{
var filePath = target.value; fileSystem = new ActiveXObject("스크립팅 .FileSystemObject");
var file = fileSystem.GetFile(filePath);
fileSize = file.Size
} else {
fileSize = target.files[0 ].size;
}
// var fsize = fileSize / 1024*1024;
if(parseInt(fsize) >=parseInt(size)){
return false; else{
return true ;
}
}
function upload(obj){
var filename = jQuery.trim(jQuery('#uploadFile').val()); >if (!filename || filename == ""){ // 제출 전 다시 확인
alert('업로드할 파일을 선택하세요.')
return false
}
if (! checkFileType(filename, type) ){
alert('파일 형식이 잘못되었습니다.');
return false;
}
var ext = filename.substr(filename.lastIndexOf(".") ).toLowerCase();
var res =allowType[ext];
if(!checkFileSize(obj,allowSize[res])){
alert(errSizeMsg[res]); ;
}
//기타 처리
}
//uploadFile은 업로드 컨트롤의 ID이고, obj는 업로드 컨트롤 자체입니다(this)

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿