- <script type="text/javascript">
- var checkSubmit = null;
- $(function(){
- var uploadList = new Array();
- <foreach name="files_fields" item="vo">
- uploadList.push("{$vo.key}");
- </foreach>
- var formObj = $("#myupload-form");
- formObj.on('click', 'img', function(e){
- var form = document.getElementById('myupload-form'),
- input = form.querySelector("input[name="+$(this).attr('data-target')+"]"),
- target = input.parentNode.querySelector('img');
- input.addEventListener("change", function () {
- //通过 this.files 取到 FileList ,这里只有一个
- viewFile(target, this.files[0]);
- }, false);
- input.click();
- });
- function viewFile (target, file) {
- //通过file.size可以取得图片大小
- var reader = new FileReader();
- reader.onload = function( evt ){
- target.setAttribute('src', evt.target.result);
- }
- reader.readAsDataURL(file);
- }
- function AjaxError(XMLHttpRequest, textStatus) {
- if (XMLHttpRequest.status == 500) {
- try {
- var result = eval("(" + XMLHttpRequest.responseText + ")");
- alert("网络故障,请重试!" + result.exception.message + "\\n状态:" + textStatus);
- }
- catch (e) {
- alert("网络故障,请重试!" + XMLHttpRequest.responseText + "\\n状态:" + textStatus);
- }
- }
- else if (XMLHttpRequest.status == 200) {
- alert("网络故障,从服务端获取数据有误!" + textStatus + "\\n" + XMLHttpRequest.responseText);
- }
- else
- alert("网络故障,请重试!错误代码:" + XMLHttpRequest.status.toString() + ",状态:" + textStatus + "\\n" + XMLHttpRequest.responseText);
- }
- function upload(inputObj, su, er){
- var fd = new FormData();
- fd.append(inputObj.attr('name'), inputObj.get(0).files[0]);
- $.ajax({
- url: "{:U('Index/ajaxUpload')}",
- type: "POST",
- dataType: 'json',
- processData: false,
- contentType: false,
- data: fd,
- beforeSend: function(){
- _wx._loading(inputObj.attr("data-filedes") + "上传中...");
- },
- error: function(XMLHttpRequest, textStatus){
- _wx._loading();
- AjaxError(XMLHttpRequest, textStatus);
- },
- success: function(data, textStatus) {
- _wx._loading();
- if(!data.status){
- _wx._toast(data.info, er(data));
- return false;
- }
- su(data);
- }
- });
- }
- checkSubmit = function(){
- var divObj = $("div.myupload-base"),
- checked = true,
- tips = "";
- divObj.find('input').each(function(){
- if(checked && $(this).val() == ''){
- checked = false;
- tips = $(this).attr('placeholder');
- }
- });
- if(!checked){
- _wx._toast(tips);
- return false;
- }
- if(uploadList.length == 0){
- _wx._ok("图片上传完成,保存资料中...",function(){
- $("#myupload-form").submit();
- });
- return true;
- }
- var fileKey = uploadList.shift(); //删除并返回第一个元素
- if(formObj.find("dd.myupload-files[data-filekey='" + fileKey + "']").length < 1){
- _wx._toast("未找到上传对象" + fileKey, function(){
- uploadList.unshift(fileKey);
- });
- return false;
- }
- var ddObj = $("dd.myupload-files[data-filekey='" + fileKey + "']", formObj);
- //获取对象
- var inputObj = ddObj.find("input[type='file']");
- //检查是否选择了文件
- if(!inputObj.get(0) || ! inputObj.get(0).files[0]){
- _wx._toast("请选择" + inputObj.attr('data-filedes'), function(){
- uploadList.unshift(fileKey);
- });
- return false;
- }
- //上传
- upload(inputObj, function(data){
- inputObj.after('<input type="hidden" name="files_' + inputObj.attr('name') + '" value="' + data.data.id + '"/>');
- inputObj.remove();
- return checkSubmit();
- }, function(data){
- uploadList.unshift(fileKey); //上传失败
- return false;
- });
- return false;
- };
- });
- </script>
- //该片段来自于http://www.codesnippet.cn/detail/2205201512637.html
来源: http://www.codesnippet.cn/detail/2205201512637.html