javascript-ajax结合html5中的file实现文件上传,后台用PHP接收,该如何用PHP接收传过来的formData?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-ajax结合html5中的file实现文件上传,后台用PHP接收,该如何用PHP接收传过来的formData?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2847字,纯文字阅读大概需要5分钟。
内容图文
如何用PHP接收前端传输过来的文件,formdata这个对象的文件到是什么类型的二进制的数据吗?前端代码:
php代码:
不知道为什么if(!empty($_FILES['file']))这判断一直false,改用if(!empty($_POST['file']))也是一样;哪位知道后台是如何接收传过来的文件的吗?可不可以给个demo的PHP文件!
回复内容:
如何用PHP接收前端传输过来的文件,formdata这个对象的文件到是什么类型的二进制的数据吗?
前端代码:
php代码:
不知道为什么if(!empty($_FILES['file']))这判断一直false,改用if(!empty($_POST['file']))也是一样;哪位知道后台是如何接收传过来的文件的吗?可不可以给个demo的PHP文件!
我在php中加了3个日志记录:
file_put_contents('/tmp/tmp.log', '$_FILES'.":\n".print_r($_FILES, true)."\n\n", FILE_APPEND);
file_put_contents('/tmp/tmp.log', '$_POST'.":\n".print_r($_POST, true)."\n\n", FILE_APPEND);
file_put_contents('/tmp/tmp.log', '$_SERVER'.":\n".print_r($_SERVER, true)."\n\n", FILE_APPEND);
存储路径改成tmp了,其他没变,得到的结果:
[root@localhost tmp]# cat tmp.log
$_FILES:
Array
(
[file] => Array
(
[name] => Screenshot_2010-01-01-08-11-30.png
[type] => image/png
[tmp_name] => /tmp/phposvIcw
[error] => 0
[size] => 30920
)
)
$_POST:
Array
(
)
$_SERVER:
Array
(
[USER] => nginx
[HOME] => /var/lib/nginx
[FCGI_ROLE] => RESPONDER
[SCRIPT_FILENAME] => /var/www/test.php
[SCRIPT_NAME] => /test.php
[PATH_INFO] =>
[QUERY_STRING] =>
[REQUEST_METHOD] => POST
[CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundaryiJpJZSxazdqa8hzb
[CONTENT_LENGTH] => 31127
[REQUEST_URI] => /test.php
[DOCUMENT_URI] => /test.php
[DOCUMENT_ROOT] => /var/www
[SERVER_PROTOCOL] => HTTP/1.1
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_SOFTWARE] => nginx/1.6.3
[REMOTE_ADDR] => 192.168.255.1
[REMOTE_PORT] => 60032
[SERVER_ADDR] => 192.168.255.128
[SERVER_PORT] => 80
[SERVER_NAME] =>
[REDIRECT_STATUS] => 200
[HTTP_HOST] => 192.168.255.128
[HTTP_CONNECTION] => keep-alive
[HTTP_CONTENT_LENGTH] => 31127
[HTTP_ORIGIN] => http://192.168.255.128
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
[HTTP_CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundaryiJpJZSxazdqa8hzb
[HTTP_ACCEPT] => */*
[HTTP_DNT] => 1
[HTTP_REFERER] => http://192.168.255.128/test.html
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8,ja;q=0.6,en;q=0.4
[PHP_SELF] => /test.php
[REQUEST_TIME_FLOAT] => 1470377177.1168
[REQUEST_TIME] => 1470377177
)
文件成功上传
[root@localhost tmp]# ll
total 36
-rw-r--r-- 1 nginx nginx 30920 Aug 5 14:06 Screenshot_2010-01-01-08-11-30.png
-rw-r--r-- 1 nginx nginx 1705 Aug 5 14:06 tmp.log
[root@localhost tmp]#
没有出错……
先来个打印看看啊!先别用if
判断。直接
echo 'FILES:'.var_dump($_FILES);
echo 'POST:'.var_dump($_POST);
die();
看看是什么东东。然后在一步一步的来
F12看请求啊
楼主用$_REQUES
接收试一下吧。
你也可以直接传base64
编码
打开chrome的控制台看看请求Request发送了什么,主要看请求头的Content-Type和请求体
内容总结
以上是互联网集市为您收集整理的javascript-ajax结合html5中的file实现文件上传,后台用PHP接收,该如何用PHP接收传过来的formData?全部内容,希望文章能够帮你解决javascript-ajax结合html5中的file实现文件上传,后台用PHP接收,该如何用PHP接收传过来的formData?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。