本文实例为大家分享了php+ajax 文件上传的具体代码,供大家参考,具体内容如下
html 代码
1
2
3
4
5
|
< form action = "{pboot:form fcode=8}" method = "post" id = "t" enctype = "multipart/form-data" >
< input type = "file" name = 'tables_a' id = "tables" onchange = "abs()" >
< input type = "hidden" name = 'tables' id = 'tables_2' >
< input type = "submit" value = "提交" >
</ form >
|
项目使用的是pbootCMS 所以地址可忽略
enctype="multipart/form-data"因为设计到文件上传必须在from 表单中添加该属性
js代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
function abs(){
var fileArray = document.getElementById( 'tables' ).files[0];
var formData = new FormData();
formData.append( "fileArray" , fileArray)
$.ajax({
url: "{pboot:httpurl}/api.php/Tables/index" , //传向后台服务器文件
type: 'POST' , //传递方法
data: formData, //传递的数据
dataType : 'json' , //传递数据的格式
async: false , //这是重要的一步,防止重复提交的
cache: false , //设置为false,上传文件不需要缓存。
contentType: false , //设置为false,因为是构造的FormData对象,所以这里设置为false。
processData: false , //设置为false,因为data值是FormData对象,不需要对数据做处理。
success: function (responseStr){
if (responseStr.code != 0){
alert( '上传成功' );
$( '#tables_2' ).val( '{pboot:httpurl}' +responseStr.data);
} else {
alert( '上传失败' );
}
},
error: function () {
alert( "上传错误!" );
}
});
}
|
PHP代码
1
2
3
4
5
6
7
8
9
10
11
12
|
public function index()
{
$name = $_FILES [ 'fileArray' ][ 'name' ];
$last = substr ( $name , strrpos ( $name , '.' ));
$name = date ( 'YmdHis' ).rand(10000,99999). $last ;
$address = ROOT_PATH. '/upload/' . $name ;
if (move_uploaded_file( $_FILES [ 'fileArray' ][ 'tmp_name' ], $address )){
return json(1, '/upload/' . $name );
} else {
return json(0);
}
}
|
$_FILES['fileArray']['tmp_name'] 是文件的临时存储位置,所以直接将他移动过去就好了
以上所述是小编给大家介绍的php+ajax的文件上传详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/CcPz/p/10168433.html