本文实例为大家分享了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