2025年3月24日 星期一 甲辰(龙)年 月廿三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > PHP

PHP Ajax文件异步上传代码(XMLHttpRequest)

时间:02-15来源:作者:点击数:51

PHP 代码:

  • <?php
  • $fileName = $_FILES['afile']['name'];
  • $fileType = $_FILES['afile']['type'];
  • $fileContent = file_get_contents($_FILES['afile']['tmp_name']);
  • $dataUrl = 'data:' . $fileType . ';base64,' . base64_encode($fileContent);
  • $json = json_encode(array(
  • 'name' => $fileName,
  • 'type' => $fileType,
  • 'dataUrl' => $dataUrl,
  • 'username' => $_REQUEST['username'],
  • 'accountnum' => $_REQUEST['accountnum']
  • ));
  • echo $json;
  • ?>

Html 及 JS 代码

  • <!DOCTYPE html>
  • <!--
  • Copyright 2012 Google Inc.
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at
  • http://www.apache.org/licenses/LICENSE-2.0
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.
  • Author: Eric Bidelman (ericbidelman@chromium.org)
  • -->
  • <html>
  • <head>
  • <meta charset="utf-8" />
  • <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
  • <title>xhr.send(FormData) Example</title>
  • </head>
  • <body>
  • <input type="file" name="afile" id="afile" accept="image/*"/>
  • <script>
  • document.querySelector('#afile').addEventListener('change', function(e) {
  • var file = this.files[0];
  • var fd = new FormData();
  • fd.append("afile", file);
  • // These extra params aren't necessary but show that you can include other data.
  • fd.append("username", "Groucho");
  • fd.append("accountnum", 123456);
  • var xhr = new XMLHttpRequest();
  • xhr.open('POST', 'handle_file_upload.php', true);
  • xhr.upload.onprogress = function(e) {
  • if (e.lengthComputable) {
  • var percentComplete = (e.loaded / e.total) * 100;
  • console.log(percentComplete + '% uploaded');
  • }
  • };
  • xhr.onload = function() {
  • if (this.status == 200) {
  • var resp = JSON.parse(this.response);
  • console.log('Server got:', resp);
  • var image = document.createElement('img');
  • image.src = resp.dataUrl;
  • document.body.appendChild(image);
  • };
  • };
  • xhr.send(fd);
  • }, false);
  • </script>
  • <!--[if IE]>
  • <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
  • <script>CFInstall.check({mode: 'overlay'});</script>
  • <![endif]-->
  • </body>
  • </html>
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门