Tôi cần trợ giúp thêm một số dòng mã để kiểm tra là tệp là hình ảnh, để kiểm tra tiện ích mở rộng. Đây là mã của tôi mà tôi sử dụng để biểu thị tiến trình tải lên hình ảnh. Tôi làm điều đó trong php và người dùng không thể tải lên bất kỳ tệp nào ngoại trừ .jpg .jpeg .gif và .png nhưng anh ta không nhận được thông báo rằng tệp không được tải lên. Khi tôi thêm mã javascript để tải lên tiến trình, thông điệp php của tôi mà tôi tạo không hiển thị nữa.Kiểm tra phần mở rộng tệp và người dùng cảnh báo nếu không phải là tệp hình ảnh
Đây là javascript upload.js mã tập tin của tôi:
var handleUpload = function(event) {
event.preventDefault();
event.stopPropagation();
var fileInput = document.getElementById('image_id');
var data = new FormData();
data.append('javascript', true);
if(fileInput.files[0].size > 1050000) {
document.getElementById("image_id").innerHTML = "Image too big (max 1Mb)";
alert('Fotografija koju želite dodati je veća od 1Mb!');
window.location="upload_images.php"
return false;
}
for (var i =0; i < fileInput.files.length; ++i) {
data.append('image', fileInput.files[i]);
}
var request = new XMLHttpRequest();
request.upload.addEventListener('progress', function(event) {
if (event.lengthComputable) {
var percent = event.loaded/event.total;
var progress = document.getElementById('upload_progress');
while (progress.hasChildNodes()) {
progress.removeChild(progress.firstChild);
}
progress.appendChild(document.createTextNode(Math.round(percent * 100) + ' %'));
}
});
request.upload.addEventListener('load', function(event) {
document.getElementById('upload_progress').style.display = 'none';
});
request.upload.addEventListener('error', function(event) {
alert('Dodavanje slika nije bilo uspješno! Pokušajte ponovo.');
});
request.addEventListener('readystatechange', function(event) {
if (this.readyState == 4) {
if(this.status == 200) {
var links = document.getElementById('uploaded');
window.location="upload_images.php?success"
console.log(this.response);
} else {
console.log('Server replied with HTTP status ' + this.status);
}
}
});
request.open('POST', 'upload_images.php');
request.setRequestHeader('Cache-Control', 'no-cache');
document.getElementById('upload_progress').style.display = 'block';
request.send(data);
}
window.addEventListener('load', function(event) {
var submit = document.getElementById('submit');
submit.addEventListener('click', handleUpload);
});
Và đây là hình thức của tôi cho tập tin tải lên:
<div id="uploaded">
</div>
<div>
<form action="" method="post" enctype="multipart/form-data">
<input name="image" id="image_id" type="file" size="25" value="Odaberi sliku" />
<input type="submit" id="submit" value="Dodaj Foto"/>
</form>
</div>
<div class="upload_progress" id="upload_progress"></div>
tôi cần ở chỗ mã javascript cũng để kiểm tra được tập tin là hình ảnh. Để cho phép mở rộng jpg, jpeg, png và gif và chặn các tiện ích mở rộng khác. Để cảnh báo người dùng nếu anh ấy cố gắng tải lên loại tệp khác.
và vì vậy bạn biết, tệp [0] sẽ không hoạt động trong nghĩa là và opera (dường như với tôi) – monkeyinsight
Nên làm việc tốt trong Opera, không phải IE <10 http://caniuse.com/fileapi –
Nơi để đặt dòng đó. Tôi khay sau khi kiểm tra kích thước hình ảnh nhưng không hoạt động. Tôi cũng có khay với dấu ngoặc: nếu (! FileInput.files [0] .fileName.match (/ \. (Jpg | jpeg | png | gif) $ /)) { cảnh báo ('không phải hình ảnh'); } Nhưng không hoạt động. –