Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >localResizeIMG图片压缩上传 原

localResizeIMG图片压缩上传 原

作者头像
tianyawhl
发布于 2019-04-04 03:12:29
发布于 2019-04-04 03:12:29
1.4K00
代码可运行
举报
文章被收录于专栏:前端之攻略前端之攻略
运行总次数:0
代码可运行

完整的前后端图片压缩上传,后台语言php 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <title>文件api</title>
    <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
    <style>
    #previewImgDiv {
        width: 200px;
        height: 200px;
        display: table-cell;
        background: #f2f2f2;
        border: 1px solid #ccc;
        vertical-align: middle;
        text-align: center;
        overflow: hidden;
        margin-bottom: 20px;
    }

    #previewImgDiv img {
        max-width: 100%;
        max-height: 100%;
    }
    </style>
</head>

<body style="padding:20px;">
    <div id="test-file-info"></div>
    <div id="previewImgDiv">图片预览</div>
    <div class="file-input" style="margin-top:20px;">
        <label for="xFile" class="btn btn-primary">选择图片</label>
        <button id="upload" class="btn btn-success">上传图片</button>
        <input type="file" id="xFile" style="position:absolute;clip:rect(0 0 0 0);">
        <!-- clip 是对绝对定位进行裁剪,其余的地方默认隐藏rect(top,right,bottom,left),rect的参数都是距离左边或者上边的距离,如top遇bottom是距离位裁剪前上面的距离,left与right距离左边的距离 -->
    </div>
    <div></div>
</body>
<script src="../jQuery/jQuery-2.1.4.min.js"></script>
<script src="../bootstrap/js/bootstrap.js"></script>
<script src="dist/lrz.bundle.js"></script>
<script type="text/javascript">
var data;
document.querySelector('input').addEventListener('change', function() {
    // this.files[0] 是用户选择的文件
    lrz(this.files[0], { width: 500 })
        .then(function(rst) {

            // 把处理的好的图片给用户看看呗(可选)
            var imgDiv = document.getElementById('previewImgDiv');
            var img = new Image();
            img.src = rst.base64; //base64字符串
            imgDiv.innerHTML = "";
            imgDiv.appendChild(img);
            data = rst.formData
        })
        .catch(function(err) {
            // 万一出错了,这里可以捕捉到错误信息
            // 而且以上的then都不会执行
            alert(err);
        });
});

$("#upload").on("click", function() {
    $.ajax({
        url: 'upload.php',
        data: data,
        processData: false,
        contentType: false,
        type: 'POST',
        error: function(err) {
            console.log("上传失败" + err)
        },
        success: function(result) {
            alert("上传成功");

        },
    })
})
</script>

</html>

后台

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
// 允许上传的图片后缀
header("Content-type: text/html; charset=utf-8");
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
//获取文件对象,键名为name属性或者key
//Array ( [file] => Array ( [name] => 居中.jpg [type] => image/jpeg [tmp_name] => E:\wamp\tmp\php8C86.tmp [error] => 0 [size] => 9742 ) )
print_r($_FILES);

$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
  if ($_FILES["file"]["error"] > 0)
  {
    echo "错误:: " . $_FILES["file"]["error"] . "<br>";
  }
  else
  {
    echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
    echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
    echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
    
    // 判断当期目录下的 upload 目录是否存在该文件
    // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
    if (file_exists("upload/" . $_FILES["file"]["name"]))
    {
      echo $_FILES["file"]["name"] . " 文件已经存在。 ";
    }
    else
    {
      // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
	  $name=iconv("UTF-8", "gbk",$_FILES["file"]["name"]);
      move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . "lily".".".$extension);
      echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
    }
  }
}
else
{
  echo "非法的文件格式";
}
//在使用move_uploaded_file时,路径upload/,一定要先建立upload的文件夹,否则出错
?>

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/03/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图片裁切上传插件cropper的使用
图片上传格式一般是文件格式和base64格式,比较方便的是图片格式,后台可以方便的处理上传的图片。
tianyawhl
2019/11/04
2.2K0
Cordova-拍照上传 原
增加相机插件            cordova plugin add cordova-plugin-camera (如果删除add改为remove )
tianyawhl
2019/04/04
1.1K0
sangebaimao之火币网
题目在wooyun峰会上就放出来了,在上周orange菊苣和一众师傅讨论的结果下,才终于有了第一步的路,虽然没能力拿下一血,但是还是磕磕绊绊的做出来了…
LoRexxar
2023/02/21
1K0
sangebaimao之火币网
php上传文件完整源码表单
在下面这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif、.jpeg、.jpg、.png 文件,文件大小必须小于 200 kB:
用户5706463
2019/07/22
3.1K0
【php详细笔记】上传文件到服务器
QQ空间里面上传图片呀 微信朋友圈上传图片 发邮件里面上传邮件资料附件 认证的时候要求上传照片或身份证 还有各种产品汪(gou)们提出的需求来分析,上传不同的东西。
20岁爱吃必胜客
2022/11/13
9.9K0
【php详细笔记】上传文件到服务器
linux下php导入带图片的word文档转为html,图片保存下来生成路径。
如果出现异常,在页面上不一定表现出来,而是页面卡着一直没响应,通过apache日志看到相关错误
用户8824291
2021/07/13
1.6K0
基于 Go 协程实现图片马赛克应用(上):同步版本
介绍完 Go 并发编程基础和常见并发模式的实现后,我们来看一个完整的项目 —— 基于 Go 语言实现照片马赛克功能,为了对比并发与非并发的性能差异,我们先通过同步代码实现这个功能。
学院君
2020/10/19
1K0
基于 Go 协程实现图片马赛克应用(上):同步版本
上传图片
// 允许上传的图片后缀 $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $temp1 = explode(".", $_FILES["file1"]["name"]); $temp2 = explode(".", $_FILES["file2"]["name"]); $temp3 = explode(".", $_FILES["file3"]["name"])
达达前端
2022/04/29
11.9K0
Angular 2 + 折腾记 :(8) 动手写一个不怎么靠谱的上传组件
上传功能在任何一个网站中的地位都是举足轻重的,这篇文章主要扯下如何实现一个上传组件
CRPER
2018/08/28
1.1K0
Angular 2 + 折腾记 :(8) 动手写一个不怎么靠谱的上传组件
bootstrap+jquery实现图片选取后本地预览+增删+表单ajax上传(完整demo)
运行效果截图—支持再次选择和删除不要的图片,图片预览效果的图片数据是本地的,不需要上传就可以预览
超级小可爱
2024/04/26
4240
bootstrap+jquery实现图片选取后本地预览+增删+表单ajax上传(完整demo)
HTML5+APP 拍照压缩上传 原
在拍照成功后会返回图片保存的路径,如上面的p参数,在压缩图片时要用到p,overwrite: true不能省略。
tianyawhl
2019/04/04
9961
简单实现php上传文件功能
本文实例为大家分享了php上传文件功能的具体代码,供大家参考,具体内容如下 html:
用户2323866
2021/07/08
8810
手机拍照预览2种实现方式 原
手机拍照并把图片设定特定尺寸,在网上找了一些资料,可以使用html5原生的方式 也可以使用插件,现在分别按2种方式实现
tianyawhl
2019/04/04
1.1K0
laravel多图异步上传
创建路由 在routes/web.php添加: Route::get('image-upload', 'HomeController@imageUpload'); Route::post('image
章鱼喵
2019/03/20
1.7K0
laravel多图异步上传
vue.js + axios.js图片压缩处理并上传到服务器demo
点击查看效果 图片压缩原理 将图片重新画入一个canvas中。可设置最大宽度,再按图片宽高比例定义canvas画布的宽高。 完整代码demo <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传图片</title> <meta name="renderer" content="webkit"> <meta name="viewport" content="widt
别盯着我的名字看
2022/06/09
5.7K0
PHP笔记(二)
已经学过 C++面向对象、Java 面向对象,这一部分属于是复习,以及熟悉 PHP 面向对象的不同之处,所以不会详讲
赤蓝紫
2023/01/02
2.8K0
PHP笔记(二)
HTML5 拖拽上传图片实例
  因为标题写的是实例,所以本次就不做讲解了,因为这个实例我也算是东拼西凑整出来的,参考了大概5、6款拖拽上传的插件和demo,然后把其中好的地方挑出来,最后就成了这么一个实例,一起来看下吧(地址不能保证长久有效,如果失效请在文章最后点击demo下载):http://hoorayos.caifutang.com/dropupload.html
胡尐睿丶
2022/03/23
2.9K0
HTML5 拖拽上传图片实例
golang添加图片上传功能
环境 前端框架: bootstrap 前端上传组件: file-input.js 编辑器:VSCode 操作系统:MAC 服务器开发语言:golang 后端框架:beego 简介 支持多图上传 支持图片显示 流程 1. 前端 1.1 引入js和css <head> ... <!-- Bootstrap --> <link rel="stylesheet" href="/static/css/bootstrap.min.css"> <!-- fileinput --> <link rel="s
陨石坠灭
2018/10/19
1.7K0
golang添加图片上传功能
PHP的文件上传操作
HTML5学堂:关于文件上传,主要包括“构建基本表单”-“使用AJAX发送请求,上传文件”-“使用PHP获取文件基本信息”-“执行SQL语言,返回基本图片路径”-“使用DOM操作设置预览图路径”。一起
HTML5学堂
2018/03/12
5.4K0
PHP的文件上传操作
相关推荐
图片裁切上传插件cropper的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档