多张图片上传js

1.WEB项目:

前端页面及js:

 

<body>
    <div class="mt10 pb30">
        <div class="col-xs-2">
            <span class="" >内容</span>
        </div>
        <div class="col-xs-10">
            <div id="contentShow">
            </div>
        </div>
    </div>


<div class="mt20 pb30">
    <div class="col-xs-7 col-xs-offset-3" >
        <button class="btn btn-primary button2 ml-20" id="submit">保存</button>
        <button class="btn btn-default button2 ml10" id="cancel">取消</button>
    </div>
</div>
</body>
<script>
    var E = window.wangEditor
    var editor = new E('#contentShow')
    // 普通的自定义菜单
    editor.customConfig.menus = ['image'];
    //最多选择一张图片
    editor.customConfig.uploadImgMaxLength = 1;
    // 上传图片
    editor.customConfig.uploadImgServer = config.url+"/api/basis/file/fileUpload.json";
    editor.create();
    //渲染文档类型
    function getArticleType(){
        $("#typeSelect").empty();
        var opt="<option  value=''>请选择-类型</option>";
        var param = {
            parentCode:"ARTICLE_TYPE"
        };
        $.doAjaxPost("dictionaryItem/queryCommonDictionaryItem.json", param, function(data) {
            var dictionaryList = data.data.dictionaryItemCommon;

            for (var i = 0; i < dictionaryList.length; i++) {
                opt+="<option value='"+dictionaryList[i].code+"'>"+dictionaryList[i].name+"</option>";
            }
            $("#typeSelect").append(opt);
        });
    }
    getArticleType();

    $(function() {
        $("#picUrl").change(function() {
            uploadPic();
        });

        function uploadPic() {
            var formData = new FormData($("#ajaxForm")[0]);
            $.ajax({
                type: 'POST',
                url:  config.url+"/api/basis/file/fileUpload.json",
                data: formData,
                dataType: 'JSON',
                async: false,
                cache: false,
                contentType: false,
                processData: false,
                success: function (data) {
                    var json = {
                        filePath : data.data.filePath,
                        uploadTime : data.data.uploadTime
                    }
                    $("#fileSrc").val(json.filePath);
                    $("#avatarImg").attr("src",json.filePath);
                }
            });
        }
        $("#submit").on('click', function() {

            //标题
            var title=$("#title").val();
            if(!title){
                alert("请输入标题");
                return;
            }
            //类型
            var type=$("#typeSelect").val();
            if(type=='0' || type==''){
                alert("请选择文章类型");
                return;
            }
           //封面图片
            var picUrl= $("#fileSrc").val();
            //简介
            var content= editor.txt.html();
            content = content.replace(/ /gm," ");
            content = content.replace(/</gm,"<");
            content = content.replace(/>/gm,">");
            content = content.replace(/"<!--StartFragment-->"/gm,"");
            content = content.replace(/%/gm,"~~~~");
            if(!content){
                alert("请输入内容");
                return;
            }
            if(content.indexOf("<p") > -1 || content.indexOf("<s") > -1 || content.indexOf("<t") > -1
                || content.indexOf("<a") > -1 || content.indexOf("<c") > -1 || content.indexOf("<h") > -1
                || content.indexOf("<u") > -1 || content.indexOf("<l") > -1 || content.indexOf("<f") > -1
                || content.indexOf("<?") > -1 || content.indexOf("<o") > -1
                ||  content.indexOf("<P") > -1 || content.indexOf("<S") > -1 || content.indexOf("<T") > -1
                || content.indexOf("<A") > -1 || content.indexOf("<C") > -1 || content.indexOf("<H") > -1
                || content.indexOf("<U") > -1 || content.indexOf("<L") > -1 || content.indexOf("<F") > -1
                || content.indexOf("<!") > -1 || content.indexOf("<O") > -1 ){
                alert("只支持div,br,img标签。");
                return;
            }
            /*if(!isJSON(content)){
                alert("请输入正确的json格式");
                return;
            }*/
            //提交
            var prams = {
                title:title,
                type:type,
                picUrl:picUrl,
                content:content
            };

            $.doAjaxPost('article/addArticle.json', prams, function(data) {
                doajaxsuccess("添加成功", 2)
            });

        });
    });
    $("#cancel").on('click',function(){
        parent.closeIframe();
    });
    //判断是否是json数据
    function isJSON(str) {
        if (typeof str == 'string') {
            try {
                JSON.parse(str);
                return true;
            } catch(e) {
                console.log(e);
                return false;
            }
        }
    }
</script>
</html>

 

 

 

 

 

 

 

主要用了Uploadify插件,还有AJAX。 兼容各种主流浏览器:chrome Firefox IE ... IE7以上都兼容,IE6没试过。 因为Uploadify是用flash做的,所以如果浏览器上面看不到"上传"按钮,请先检查你的flash是否已安装。 压缩包里包含两个项目,一个是多图上传的示例(不含数据库),另一个也是多图上传的示例,不过这个可以修改每张图片的描述,所以用了SQL数据库。 项目中UploadHandler.ashx里面有等比例生成缩略图和裁剪图片的方法,如有需要可直接调用。 第一个项目和第二个项目都主要用Jquery AJAX Uploadify来完成上传图片的功能。很简单的代码,不会复杂。如果不认识这三个东西的,建议百度或谷歌一下。 第二个项目用了linq to sql进行对SQL数据库的操作,包括上传图片时对数据库进行插入数据的操作,删除图片时对数据库进行删除的操作,设置"封面图片"时对数据库的操作。 这个我是用ASP.NET建的项目,如果你是其他平台的也可以参考里面某些代码,如Uploadify上传,Jquery对图片列表的操作。 其他的具体看项目,代码片段: PicUpload.js : //删除图片 function deletePic(n) { $.ajax({ type: "GET", url: "/api/UploadHandler.ashx?action=deletePic", data: "picName=" + n + "&ver=" + new Date().getTime(), dataType: "html", success: function (data) { if (data.length > 10) { $("li[id='p_" + n.replace(".jpg", "") + "']").remove(); } } }) } UploadHandler.ashx : //删除图片 public bool DeletePic(string pName) { string uploadPath = HttpContext.Current.Server.MapPath("~/Upload/" + pName); if (System.IO.File.Exists(uploadPath)) { System.IO.File.Delete(uploadPath); Album query = (from item in db.Album where item.Pname == pName select item).First(); db.Album.DeleteOnSubmit(query); db.SubmitChanges(); return true; } else return false; } 最后简单说下Uploadify,Uploadify的介绍网上都很多,也有很多的示例。我就说说功能,看下面的代码: $(document).ready(function () { $("#uploadify").uploadify({ 'uploader': '/js/jquery.uploadify-v2.1.0/uploadify.swf', 'script': '/api/UploadHandler.ashx', 'cancelImg': '/js/jquery.uploadify-v2.1.0/cancel.png', 'folder': '/Upload', 'queueID': 'fileQueue', 'auto': true, 'multi': true, 'fileDesc': '请选择.jpg .png .bmp .jpeg文件', 'fileExt': '*.jpg;*.png;*.bmp;*.jpeg;', 'onComplete': function (e, queueId, fileObj, data) { $("#photoListUl").append(data); $("#progressText2").hide(); document.getElementById('photoListUl').scrollTop = "99999"; }, 'onSelect': function (e, queueId, fileObj) { $("#progressText1").text(iSum++); $("#progressText2").show(); } }); }); function uploadFile() { jQuery('#uploadify').uploadifyUpload() } 可以限定选择上传的文件类型,我这里是上传图片. 可以限定要上传的文件的大小,如限定为15M? 可以在上传的时候添加参数或各种验证. 这些你在网上可以找到很多例子的,我在项目里就不添加上去了。 ----------------------------------------------------------------- 项目仅供参考。如有疑问可直接回复或企鹅: 514158268
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值