上传图片实例

// 图片上传功能
var defaults = {
fileType : ["jpg","png","gif","jpeg"]
};
var file_btn=el.find(".file");
var files_arr=[];
var fileList;
//$(".z_file")为file父级
$(".z_file").delegate(".file","change",function(){
var idFile = $(this).attr("id");
var file = document.getElementById(idFile);
var imgContainer = $(this).parents(".imgbox"); //存放图片的父亲元素
fileList = file.files; //获取的图片文件
var input = $(this).parent();//文本框的父亲元素
var imgArr = [];
//遍历得到的图片文件
var numUp = imgContainer.find(".up-section").length;
var totalNum = numUp + fileList.length; //总的数量
if(fileList.length > 3 || totalNum > 3 ){
alert("上传图片数目不可以超过3个,请重新选择");
return false; //一次选择上传超过3个 或者是已经上传和这次上传的到的总数也不可以超过3个
}
else if(numUp < 3){
fileList = validateUp(fileList);
preview();
}
numUp = imgContainer.find(".up-section").length;
if(numUp >= 3){
$(this).parent().hide();
}
for(var i=0;i<fileList.length;i++){
files_arr.unshift(fileList[i]);
//兼容性处理
if(file.outerHTML){
file.outerHTML=file.outerHTML;
}else{
file_btn.val("");
}
$(".file_judge").val("验证通过");
}
});

$(".imgbox").delegate(".close-upimg","click",function(event){
event.preventDefault();
event.stopPropagation();
var delParent = $(this).parent();
var numUp = delParent.siblings().length;
if(numUp < 4){
delParent.parent().find(".z_file").show();
}
var del_num=delParent.index();
delParent.remove();
files_arr.splice(del_num,1);
if(files_arr.length==0){
$(".file_judge").val("");
}
});

function preview(){
for(var i = 0;i<fileList.length;i++){
var imgUrl = window.URL.createObjectURL(fileList[i]);
imgArr.push(imgUrl);
var $section = $("<div class=‘up-section fl loading‘>");
imgContainer.prepend($section);
var $span = $("<span class=‘up-span‘>");
$span.appendTo($section);
var $img0 = $("<img class=‘close-upimg‘>");
$img0.attr("src","/r-src/i/page/new_saas/fail.png").appendTo($section);
var $img = $("<img class=‘up-img up-opcity‘>");
$img.attr("src",imgArr[i]);
$img.appendTo($section);
}
}

function validateUp(files){
var arrFiles = [];//替换的文件数组
for(var i = 0, file; file = files[i]; i++){
//获取文件上传的后缀名
var newStr = file.name.split("").reverse().join("");
if(newStr.split(".")[0] != null){
var type = newStr.split(".")[0].split("").reverse().join("");
if(jQuery.inArray(type, defaults.fileType) > -1){
// 类型符合,可以上传
arrFiles.push(file);
}else{
alert(‘您这个"‘+ file.name +‘"上传类型不符合‘);
}
}else{
alert(‘您这个"‘+ file.name +‘"没有类型, 无法识别‘);
}
}
return arrFiles;
}
// 图片上传end

只实现了上传预览功能

html:

1 <div class="z_file fl">
2                     <img src="/r-src/i/page/new_saas/bankimg.jpg" alt="" class="bankpic">
3                     <input class="file" multiple="multiple" value="" accept="image/jpg,image/jpeg,image/png,image/gif" type="file" name="refund[refund_file][]" id="refund_refund_file">
4                     <input type="file" name="refund_receipt_images[]" id="refund_receipt_images_" class="files" style="visibility:hidden">
5                     <input class="file_judge" vaild-required="true" valid-required-msg="验证不通过" value="" type="text" id="file_judge" style="visibility:hidden">
6 </div>

上传到服务器交互采用from提交 提交图片是

files_arr数组

由于提交from表单默认识别type=file的input(姑且给class:file),file上传一次 值会被替换,无法取得全部上传图片的信息 所以将值保存在files_arr中,再将files_arr 赋值给另一个type为file的标签 var _submit_data = new FormData(this);获取整个form的数据;

for(var i=0; i<files_arr.length; i++){
_submit_data.append(‘refund_receipt_images[]‘, files_arr[i]);
}

将files_arr循环赋值给

另一个type为file的标签
				
时间: 2024-08-28 09:29:41

上传图片实例的相关文章

jsp+servlet 上传图片实例

最近,在弄android小程序,现在需要做一个服务器后端,这里我下载了一个商城源码,想添加商品图片,这里在网上找了一个实例 引用: http://blog.csdn.net/shuwei003/article/details/6742332 这里需要jar包 希望之光微弱,但是依然坚持慢慢地向前走!

.net上传图片实例

前台代码:<asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button2" runat="server" Text="Butto2n" OnClick="Button2_Click" /> 后台代码: protected void Button2_Click(object sen

python 上传图片实例

#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time #打开网址 driver=webdriver.Firefox() driver.get("http://image.baidu.com/") time.sleep(2) driver.find_element_by_id('sttb').click() #time.sleep(2

Net实现上传图片按比例自动缩小或放大的方法

本文实例主要展示了.Net实现上传图片按比例自动缩小或放大的方法,是非常实用的功能.分享给大家供大家参考之用.具体方法如下: net实现裁剪网站上传图片的方法 .net中 发送邮件内容嵌入图片的具体实例 vb.net借助剪贴板将图片导入excel内 asp.net图片上传实例 ASP.net WebAPI 上传图片实例 .Net下二进制形式的文件(图片)的存储与读取详细解析 Asp.net图片上传实现预览效果的简单代码 asp.net上传图片并作处理水印与缩略图的实例代码 asp.net 图片超

php 编程笔记分享

php获取POST数据的三种方法php 图片加水印源代码php+ajax+json的一个最简单实例php 汉字转拼音源码php遍历目录,生成目录下每个文件的md5值并写入到结果文件中php实现linux命令tail -fphp json_encode与json_decode使用实例php curl 模拟登录并获取数据php fprintf 将格式化后的字符串写入到流php explode 将字符串分割为数组php crc32 计算字符串的 32 位 CRC(循环冗余校验)php count_ch

PHP.25-TP框架商城应用实例-后台1-添加商品功能、钩子函数、在线编辑器、过滤XSS、上传图片并生成缩略图

添加商品功能 1.创建商品控制器[C] /www.test.com/shop/Admin/Controller/GoodsController.class.php <?php namespace Admin\Controller; use Think\Controller; //后台添加商品功能控制器 class GoodsController extends Controller { //显示和处理表单 public function add() { //判断用户是否提交了表单(如果提交了,就

微信小程序上传图片到服务器实例

这一篇主要说头像 上传,以及修改保存的功能.本章节主要用的知识点有 1. wx.chooseImage 从本地相册选择图片或使用相机拍照. 2.wx.uploadFile 将本地资源上传到服务器. 3. 修改原来的小程序头像并保存,调用后台接口修改操作  第一步:我们要获取本地图片,官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/media-picture.html#wxchooseimageobject 我这里也贴出来了,不够

一个完整的微信上传图片下载图片实例,把手把教学

步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对应的接口权限. 步骤二:引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js 请注意,如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixin-1.0.0.js ,否则将无法在iOS9.0以上系

网络编程-TCP程序实例(简单上传图片)

package netTest; /* * 客户端: * 1.服务端点 * 2.读取客户端已有的图片数据 * 3.通过socket输出流将数据发给服务端 * 4.读取服务端的反馈信息 * 5.关闭. * */ import java.io.*; import java.net.*; import java.util.concurrent.SynchronousQueue; public class Client { public static void main(String[] args) t