-
jQuery+PHP实现图片上传并提交功能
图片上传思路:通过ajax实现图片上传,然后把PHP返回的图片地址,加入到隐藏字段中,最后通过表单提交给后台PHP,代码如下。
HTML代码 zimg.html文件:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>自定义上传图片</title>
- </head>
- <body>
- <form action="a.php?action=2" method="post">
- <span>
- 上传图片
- </span>
- <span>
- <input type="file" id="img_url" name="img_url" accept=".jpg, .gif, .jpeg, .bmp, .png"/>
- <a onclick="UpLoadImg()">上传</a>
- <input type="hidden" id="url_data" name="url_data"/>
- </span>
- <br>
- <span>
- <input type="submit" value="提交">
- </span>
- </form>
- </body>
- <!-- 引入jq -->
- <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
- <script>
- function UpLoadImg(){
- //获取上传文件
- var formData = new FormData();
- formData.append('img_url', $('#img_url')[0].files[0]);
- console.log(formData)
- //提交后台处理
- $.ajax({
- url: 'a.php?action=1',
- type: 'POST',
- cache: false,
- data: formData,
- dataType: "JSON",
- processData: false,
- contentType: false
- }).done(function(res) {
- console.log(res.url);
- if(res.status == 1){
- //赋值给字段
- $('#url_data').val(res.url);
- alert(res.msg)
- }else{
- alert(res.msg)
- }
- }).fail(function(res) {
- });
- }
- </script>
- </html>
后台PHP代码 a.php:
- <?php
- if($_GET['action'] == 1){//上传图片接口
- $img = $_FILES['img_url'];
- //获取上图片后缀
- $type = strstr($img['name'], '.');
- $rand = rand(1000, 9999);
- //命名图片名称
- $pics = date("YmdHis") . $rand . $type;
- //上传路径
- $pic_path = "img/". $pics;
- //移动到指定目录,上传图片
- $res = move_uploaded_file($img['tmp_name'], $pic_path);
- if($res){
- echo json_encode(['status' => 1, 'msg' => '上传成功','url' => $pic_path]);exit;
- }else{
- echo json_encode(['status' => 0, 'msg' => '上传失败']);exit;
- }
- }elseif($_GET['action'] == 2){//提交文件表单
- echo '<pre>';
- var_dump($_POST);
- }
最后实现效果如下:
ps:js代码是使用jQuery的写法,需引入jQuery代码库文件。
出处:http://www.phpfensi.com/php/20220320/20209.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式