Tôi đang ở cùng một thuyền và tìm thấy giải pháp làm việc NẾU tệp tải lên dự kiến của bạn là hình ảnh. Trong ngắn hạn tôi cập nhật ASP.NET FileUpload kiểm soát để gọi một chức năng javascript để hiển thị một hình thu nhỏ của các tập tin được lựa chọn, và sau đó trước khi gọi nộp mẫu sau đó kiểm tra hình ảnh để kiểm tra kích thước tập tin. Đủ nói chuyện, chúng ta hãy lấy mã.
Javascript, bao gồm trong phần đầu trang
function ShowThumbnail() {
var aspFileUpload = document.getElementById("FileUpload1");
var errorLabel = document.getElementById("ErrorLabel");
var img = document.getElementById("imgUploadThumbnail");
var fileName = aspFileUpload.value;
var ext = fileName.substr(fileName.lastIndexOf('.') + 1).toLowerCase();
if (ext == "jpeg" || ext == "jpg" || ext == "png") {
img.src = fileName;
}
else {
img.src = "../Images/blank.gif";
errorLabel.innerHTML = "Invalid image file, must select a *.jpeg, *.jpg, or *.png file.";
}
img.focus();
}
function CheckImageSize() {
var aspFileUpload = document.getElementById("FileUpload1");
var errorLabel = document.getElementById("ErrorLabel");
var img = document.getElementById("imgUploadThumbnail");
var fileName = aspFileUpload.value;
var ext = fileName.substr(fileName.lastIndexOf('.') + 1).toLowerCase();
if (!(ext == "jpeg" || ext == "jpg" || ext == "png")) {
errorLabel.innerHTML = "Invalid image file, must select a *.jpeg, *.jpg, or *.png file.";
return false;
}
if (img.fileSize == -1) {
errorLabel.innerHTML = "Couldn't load image file size. Please try to save again.";
return false;
}
else if (img.fileSize <= 3145728) {
errorLabel.innerHTML = "";
return true;
}
else {
var fileSize = (img.fileSize/1048576);
errorLabel.innerHTML = "File is too large, must select file under 3 Mb. File Size: " + fileSize.toFixed(1) + " Mb";
return false;
}
}
Các CheckImageSize đang tìm kiếm một tập tin nhỏ hơn 3 Mb (3.145.728), cập nhật này để bất kỳ giá trị mà bạn cần.
ASP HTML Mã
<!-- Insert into existing ASP page -->
<div style="float: right; width: 100px; height: 100px;"><img id="imgUploadThumbnail" alt="Uploaded Thumbnail" src="../Images/blank.gif" style="width: 100px; height: 100px" /></div>
<asp:FileUpload ID="FileUpload1" runat="server" onchange="Javascript: ShowThumbnail();"/>
<br />
<asp:Label ID="ErrorLabel" runat="server" Text=""></asp:Label>
<br />
<asp:Button ID="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click" Width="70px" OnClientClick="Javascript: return CheckImageSize()" />
Lưu ý trình duyệt không mất một giây để cập nhật trang với hình thu nhỏ và nếu người dùng có thể nhấp vào Save trước hình ảnh được nạp nó sẽ nhận được một - 1 cho kích thước tệp và hiển thị lỗi để nhấp lại vào lưu. Nếu bạn không muốn hiển thị hình ảnh bạn có thể làm cho điều khiển hình ảnh vô hình và điều này sẽ làm việc. Bạn cũng sẽ cần phải có một bản sao của blank.gif để trang không tải với một liên kết hình ảnh bị hỏng.
Hy vọng bạn sẽ nhanh chóng và dễ dàng bỏ qua và hữu ích. Tôi không chắc liệu có một điều khiển HTML tương tự có thể được sử dụng cho các tệp chung chung hay không.
Plus, nó sẽ là '4096 * 1024' để nhận được số byte thực tế trong 4 MB. Không phải '4000 * 1024'. – mbomb007
@ mbomb007 Bạn nói đúng. Tôi đã cập nhật câu trả lời của mình. – krlzlx
Chỉ cần nhắc nhở: nếu sử dụng tên thực tế của kết quả sẽ khác.Trong trường hợp của tôi, nó là id = "content_FileUploadControl" –
Lombas