Javascript 检查文件扩展名并提醒用户是否为';t图像文件
我需要帮助添加一些代码行来检查是文件是图像,检查扩展名。这是我用来指示上传图像进度的代码。我在php中这样做,用户除了.jpg.jpeg.gif和.png之外不能上传任何文件,但他并没有收到文件未上传的消息。当我为进度上传添加javascript代码时,我创建的php消息taht不再显示 这是我的javascript upload.js文件代码:Javascript 检查文件扩展名并提醒用户是否为';t图像文件,javascript,image,file-upload,Javascript,Image,File Upload,我需要帮助添加一些代码行来检查是文件是图像,检查扩展名。这是我用来指示上传图像进度的代码。我在php中这样做,用户除了.jpg.jpeg.gif和.png之外不能上传任何文件,但他并没有收到文件未上传的消息。当我为进度上传添加javascript代码时,我创建的php消息taht不再显示 这是我的javascript upload.js文件代码: var handleUpload = function(event) { event.preventDefault(); event
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);
});
var handleUpload=函数(事件){
event.preventDefault();
event.stopPropagation();
var fileInput=document.getElementById('image_id');
var data=new FormData();
data.append('javascript',true);
如果(fileInput.files[0].size>1050000){
document.getElementById(“image_id”).innerHTML=“图像太大(最大1Mb)”;
警报(“Fotografija kojuželite dodati je veća od 1Mb!”);
window.location=“upload\u images.php”
返回false;
}
对于(变量i=0;i
这是我上传文件的表格:
<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>
我需要在那个javascript代码中也检查文件是否为图像。允许jpg、jpeg、png和gif扩展,并阻止其他扩展。如果用户试图上载其他类型的文件,则提醒用户。您给类命名为jsp的样式
if (!fileInput.files[0].name.match(/.(jpg|jpeg|png|gif)$/i))
alert('not an image');
"Choose file",input:true,icon:true,classButton:"btn",classInput:"input-large name-jsp"
在jsp或html中,您给出id=“cekJpg”(单击上载文件而不是选择文件)
对于Vue.js
if (filename.match(/.(jpg|jpeg)$/i)){
$('#modalimage').modal('show')
vm.downloadimage = result.data
}else{
const a = document.createElement('a')
a.setAttribute('href', result.data)
a.dispatchEvent(new MouseEvent("click", {'view': window, 'bubbles':
true, 'cancelable': true}))
}
所以你知道,文件[0]在ie和opera中不起作用(在我看来)应该放在哪里。检查图像大小后,我打开了托盘,但不起作用。我还用括号表示托盘:if(!fileInput.files[0].fileName.match(/\(jpg | jpeg | png | gif)$/){alert('nota image');}但不起作用。我尝试在Firefox中使用。Web控制台错误--[20:28:12.409]类型错误:fileInput.files[0]。文件名未定义@i不记得对象中文件名的确切选项,请在此处找到它@BluE
$
-字符串结尾,/i
-忽略字母大小写
//if click button upload image with id="cekJpg"
$("#cekJpg").on('click', function (e) {
//get your format file
var nameImage = $(".name-jsp").val();
//cek format name with jpg or jpeg
if(nameImage.match(/jpg.*/)||nameImage.match(/jpeg.*/)){
//if format is same run form
}else{
//if with e.preventDefault not run form
e.preventDefault();
//give alert format file is wrong
window.alert("file format is not appropriate");
}
});
if (filename.match(/.(jpg|jpeg)$/i)){
$('#modalimage').modal('show')
vm.downloadimage = result.data
}else{
const a = document.createElement('a')
a.setAttribute('href', result.data)
a.dispatchEvent(new MouseEvent("click", {'view': window, 'bubbles':
true, 'cancelable': true}))
}