Php 多图像上传验证javascript
我使用php代码进行多文件上传。它工作得很好。但是,当我们在不上传任何文件的情况下单击submit按钮时,它会显示成功并以值0的形式存储在数据库中。我尝试了一些javascript验证“请上传图像”。但仍在努力 有人能帮我吗 这是代码Php 多图像上传验证javascript,php,javascript,Php,Javascript,我使用php代码进行多文件上传。它工作得很好。但是,当我们在不上传任何文件的情况下单击submit按钮时,它会显示成功并以值0的形式存储在数据库中。我尝试了一些javascript验证“请上传图像”。但仍在努力 有人能帮我吗 这是代码 > <?php if(isset($_FILES['files'])){ $errors= array(); foreach($_FILES['files']['tmp_name'] as $key => $tmp_
> <?php
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$query="INSERT into upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
$desired_dir="gallery";
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"gallery/".$file_name);
}else{ //rename the file if another one exist
$new_dir="gallery/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
mysql_query($query) or die(mysql_error());
}else{
print_r($errors);
}
}
if(empty($error)){
echo "Success";
}
}
?>
您可以将第一行中的if(isset())与if(!empty())交换,以检查是否已上载任何文件
在客户端,您可以将参数“required”添加到
这是我的第一个想法
我建议重新编写脚本以使用异常:
<?php
if(!empty($_FILES['files']))
{
try
{
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name )
{
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 2097152)
throw new Exception('File size must be less than 2 MB');
$query="INSERT into upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`)
VALUES(
'". intval($user_id) ."',
'". stripslashes(mysql_real_escape_string($file_name)) ."',
'". intval($file_size). "',
'". stripslashes(mysql_real_escape_string($file_type)) ."'); ";
$desired_dir="gallery";
if(is_dir($desired_dir)==false)
{
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false)
{
move_uploaded_file($file_tmp,"gallery/".$file_name);
}
else
{
//rename the file if another one exist
$new_dir="gallery/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
if (!mysql_query($query))
throw new Exception(mysql_error());
}
echo "Success";
}
catch (Exception $e)
{
print_r($e->getMessage());
}
}
else
{
echo "No files uploaded";
}
我尝试了一些javascript验证“请上传图像”
您可以添加Javascript验证,但如果您的浏览器支持
Javascript
$(文档).ready(函数(){
if(window.FormData){
$('input[type=“file”]”)。绑定({
更改:函数()
{
var输入=此,
files=input.files;
如果(files.length>0){
var regExp=new regExp('image.(jpeg | jpg | gif | png)'i');
对于(var i=0;i
$(函数(){
$('#Image').bind('change',function()){
var a=(this.files[0].size);
如果((a/1048576)>2.048){
警报('您的文件大小不应超过2MB');
};
});
$('#btnsupmit')。单击(函数(){
var fileExtension=['png','jpg','jpeg'];
if($.inArray($(this.val().split('.').pop().toLowerCase(),fileExtension)=-1){
警报(“仅允许Png、jpeg和jpg图像文件”);
返回false;
}
其他的
返回true;
})
})
不要忘记在mysql查询中正确转义用户输入。我已经更新了我的答案
$(document).ready(function() {
if (window.FormData) {
$('input[type="file"]').bind({
change : function()
{
var input = this,
files = input.files;
if (files.length > 0) {
var regExp = new RegExp('image.(jpeg|jpg|gif|png)', 'i');
for (var i = 0; i < files.length; i++)
{
var file = file = files[i];
var matcher = regExp.test(file.type);
if (!matcher)
{
alert('invalid file');
}
}
} else {
alert('please add 1 file');
}
}
});
} else {
alert('Browser not support Formdata');
}
});
<script type="text/javascript">
$(function () {
$('#Image').bind('change', function() {
var a=(this.files[0].size);
if((a/1048576) > 2.048) {
alert('Your file size should not exceed 2 Mb.');
};
});
$('#btnSubmit').click(function () {
var fileExtension = ['png', 'jpg', 'jpeg'];
if ($.inArray($(this).val().split('.').pop().toLowerCase(), fileExtension) == -1) {
alert("Only Png,jpeg and jpg image files allowed");
return false;
}
else
return true;
})
})
</script>