서버에 업로드하기 전에 이미지 크기 (높이 및 너비)를 확인할 수있는 방법이 있습니까?ASP.NET : 업로드하기 전에 파일 크기 (너비 및 높이)를 확인하십시오.
자바 스크립트를 사용하고 있다고 생각하지만 어떻게해야할지 모르겠다. 아니면 일부 클라이언트 asp.net 검사기로.
어떤 조언이 필요합니까?
서버에 업로드하기 전에 이미지 크기 (높이 및 너비)를 확인할 수있는 방법이 있습니까?ASP.NET : 업로드하기 전에 파일 크기 (너비 및 높이)를 확인하십시오.
자바 스크립트를 사용하고 있다고 생각하지만 어떻게해야할지 모르겠다. 아니면 일부 클라이언트 asp.net 검사기로.
어떤 조언이 필요합니까?
이것은 클라이언트 측에서 javascript를 사용하여 수행 할 수 없습니다. 플래시, 실버 라이트 등으로 작성된 파일 업로드 구성 요소가 유형, 크기 및 크기별로 업로드되는 파일을 제한 할 수 있습니다.
당신은 스스로에게 물어 필요 ASP.net 래퍼에 대한 this project을보고 확인하는 GD를 사용할 수 있습니다, 당신은 정말이 전혀 가능하다고 생각합니까?
자바 스크립트는 어떻게 파일을 열 수 있습니까? 어떻게 읽습니까? 다양한 이미지 형식을 읽을 수있는 라이브러리를 보유하고 있습니까?
클라이언트에서 JS의 파일 크기를 알 수 없습니다.
당신 수 할 요청이 서버에 도착하면 예상 파일 크기가 일정 한도를 초과하는 경우, 다음 전송을 취소 파일 크기를 검사 할 수 있습니다 : 업로드 모듈의 BeginRequest에서
:
HttpWorkerRequest workerRequest = (HttpWorkerRequest)context.GetType().GetProperty("WorkerRequest", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(context, null);
// Indicates if the worker request has a body
if (workerRequest.HasEntityBody())
{
// Get the byte size of the form post.
long contentLength = long.Parse((workerRequest.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentLength)));
if (contentLength > MAX_UPLOAD_FILE_SIZE * 1024)
{
workerRequest.CloseConnection();
context.Response.Redirect(SomeErrorPage);
}
}
는 아직 테스트하지 않은,하지만 이론적으로는
EDIT를 작동 할 수 있습니다 : 결코 마음을, 나는 바보입니다. 나는 그가 이미지 크기가 아닌 파일 크기를 검사하는 것을 의미한다고 생각했다.
나는 this Javascript snippet을 발견했고 내 시스템 (IE 7.0.6001.18000)에서 작업했다. 가능한 크로스 브라우저 문제를인지하고 확인해야합니다.
var tempImage;
function showDimensions() {
var imageName = document.forms[0].elements['myFile'].value;
if (imageName != '') {
imageName = 'file:///' + escape(imageName.split('\\').join('/'));
imageName = imageName.split('%3A').join(':');
tempImage = new Image();
tempImage.onload = getDimensions;
tempImage.src = imageName + '?randParam=' + new Date().getTime();
// append a timestamp to avoid caching issues - which happen if you
// overwrite any image with one of different dimensions, and try to
// get the dimensions again even with cache settings to max,
// in both ff and ie!
}
}
function getDimensions() {
alert(tempImage.width + ' x ' + tempImage.height);
}
나는 보안 문제를 떠올리게하지 않을 것이다. 또한 IE7 +에서 Upload File 요소의 값은 전체 경로를 더 이상 포함하지 않습니다. 파일의 이름 만. – Radu094
+1 : IE7을 사용하여이 코드를 실행하고 작업했습니다. 어쨌든,이 문제에 대한 경고 메시지가 나타날 수 있습니다. –
이상한 점은 IE7에서 완전한 파일 경로를 얻을 수 있다는 것입니다. 이 동작 변경으로 인해 업로드 구성 요소를 다시 작성해야한다는 것을 분명히 기억합니다 ... 어쩌면 미래의 IE7 업데이트가 이전 방식으로 되돌아 갔을 수도 있습니다. – Radu094
+1 - 실버 라이트 물론 : –