ajax - php上传多个文件并显示以前上传的文件

时间:2014-11-28 18:13:41

标签: php ajax

Html表单

 <form enctype="multipart/form-data" method="post">
 <input name="files[]" type="file" id="upload_file" /><br/>
 <input type="button" id="upload" value="Upload File" />
 </form>

然后用ajax发送到php

$("#upload_file").hide();
$("#upload").click(function() {
$("#upload_file").click();
})

$('#upload_file').change(function(e) {
e.preventDefault();
var formData = new FormData($(this).parents('form')[0]);

$.ajax({
url: '___ajax_upload_files.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success: function (data) {

$('#upload_span').html( data );
},
data: formData,
cache: false,
contentType: false,
processData: false
});
return false;
})     

然后在这里处理php(实际代码有点不同)

if ( !empty( $_FILES['files']['name'] ) ) {
$target_path = '../images/';
$ext = explode('.', basename( $_FILES['files']['name'] ) );
$target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext)-1]; 
$val_img = substr( $target_path , 10 );

//Here code to display uploaded image

if(move_uploaded_file($_FILES['files']['tmp_name'][$i], $target_path)) {
echo '<a href=""><img src="../images/'. $val_img. '" ></a> ';
}

}

问题是,每个$('#upload_file').change(function(e) {上传一个新文件,echo '<a href=""><img src="../images/'. $val_img. '" ></a> ';只上传新上传的文件。但如何回应也普遍上传文件?

目前认为需要会话或从mysql中获取。 像foreach会话或mysql数据

echo '<a href=""><img src="../images/'. $session_or_mysql_val_img. '" ></a> ';

我的意思是:用户打开页面,点击上传;上传第一个,第二个等文件并查看所有上传的文件(现在只能看到上次上传的文件)。

有更好的解决方案吗?

0 个答案:

没有答案
相关问题