当前位置:首页 » 文件管理 » 前端js上传图片

前端js上传图片

发布时间: 2023-08-12 16:05:37

❶ 不能上传图片出现javascript提示,怎么解决

这不是出现错滚滚误吧,梁扰这是后台程序限制了你上传文件的大小和数量,你应该在程橡备旦序里改一下你设置的限制就可以了

❷ 用html, css, javascript ,怎么让用户要么选择上传自己的图片,要不选择在网页出给出的图片详情见下

可以给文件上传控件再添加一个onclick事件啊,当点击这个input时,把myimg的src赋值给cusInput,然后当onchange事件发生再把上传后的图片地址赋值给cusInput,这样的话即使因为图片路径相同未触发onchange事件,但onclick事件仍然发生了啊,cusInput仍然保留了上一次上传的图片路径:

<inputtype="file"name="pic"onchange="change(event)"onclick="cusInput=document.getElementById('myimg').src">

❸ 请问:百度Ueditor编辑器为什么不能上传图片啊在ASP中,请求高手指教。

Ueditor编辑器图片上传
UEditor的图片上传采用了Flash上传的方式,在功能上支持批量、本地预览和实时进度提示,在界面上支持自定义背景、上传按钮和预览框等视觉元素的样式属性,基本能够满足各种用户的不同上传需求。
由于涉及到了后端开发语言、flash、js和html等各种不同的web元素,图片上传这块的配置和使用相对来说稍显复杂,不过只要你认真看完以下的内容,那一切都不是什么问题了。下面我们仍然以上文中的完整版实例来一步一步完成这个过程。
先来回顾一下完整版部署章节中提到的项目目录结构,如下左图所示。为了更加符合一般网站的具体实际,也为了更清晰地展示整体的路径配置流程,我们先对这个目录做一下小的改动:将ueditor目录下的server文件夹提取出来放置到根目录中的admin文件夹下。调整后的目录结构如下右图所示

首先来看前端部分的文件及其配置。打开dialogs/image文件夹,我们可以发现四个文件:
• callback.js:本上传模块支持的所有回调函数,你可以按需选用其中的内容。对于不需要做二次开发的你说,可以放心地直接删除。
• image.html:图片上传对话框的主体文件。前端的配置和修改基本在此处完成。
• imageUploader.swf:Flash上传文件。
• tangram.js:网络前端框架tangram封装的flash操作模块。一般无需修改。
打开image.html文件,找到.swf.create()方法,有关图片上传的大部分配置都在这里进行。这其中的绝大部分参数相信你对着注释都能很容易明白意思,下面将挑选几个需要稍微解释的参数进行讲解:
首先是backgroundUrl、listBackgroundUrl和buttonUrl这三个参数。UEditor为了让上传flash的界面能够满足各种不同的网站风格,预留出了这三个参数让你可以自己定义上传框的背景、图片预览框的背景和上传按钮的背景,默认留空情况下就是同学们看到的样式。
其次是compressSide和compressLength这两个参数。前者规定了上传图片等比压缩的基准边,后者规定了前者定义的基准边的最大边长,并以该值为基准进行等比缩放。此处的值设置是通过读取配置文件中的maxImageSideLength值来进行,嫌麻烦的可以直接设置数值即可。
第三个是url参数。这个参数设置了图片上传后台处理程序的路径。以当前项目示例来说,此处的url值应该是“../../../admin/server/upload/up.php”。
第四个要介绍的参数是ext。这个参数允许让你自己定义需要向后端post的参数。只要书写符合我们demo中的格式,后台就可以直接像接收一个普通的表单项一样的方式来接收对应的自定义值。
最后一个需要要介绍的参数是fileType。它在前端限定了文件选择框中能够显示的文件类型,如果需要上传其他非图片格式的文件,你只要修改对应的扩展名即可。
前端部分的配置暂时结束,下面来看后台处理程序中的配置。打开admin/server/upload/文件夹,在up.php文件中,我们可以发现需要配置的参数有以下三个uploadPath, fileType 和 fileSize。有你后两个参数的存在表示疑问,认为前端已经通过Flash限制了文件大小和文件类型,此处不需要再进行限制。这种认识其实是不对的,有经验的hacker们完全可以通过自己构造提交表单来绕开前端Flash的各种限制,直接上传文件到我们的服务器。
我们重点来看uploadPath这个参数。默认状态下,这个参数的配置会在up.php文件所在目录的父目录中创建一个uploadfiles文件夹,并将图片保存在这个文件夹中。完成图片的保存之后需要返回的字符串是一个纯粹的json字符串,形如
{'url':'../uploadfiles/23123213.jpg','title':'描述','state':'SUCCESS'}

此处需要说明的一点是url这个参数。可以看到,当前这个url参数中携带了“../”这样的相对路径,这种表示方式由于具有明显的上下文含义,因此不大适合于用来进行跨页面的数据传递。如果非要使用这种路径传递方式,那么必须在图片显示页面进行地址修正。 一般来说,比较正确的做法是在返回给客户端之前将相对路径转换成带域名的绝对路径,这一步操作一般应该结合后台的网站根目录配置来完成。UEditor不希望了解具体的服务器端配置,因此在此处进行了另外一种处理:去掉所有./以及../等相对路径的字符串,只返回从uploadfiles开始的图片路径,如“uploadfiles/23123213.jpg”, 然后通过在editor_config.js中配置imagePath这个参数来修正图片的真实地址。imagePath代表的含义是uploadfiles文件夹所在的文件夹地址。以当前实例项目为例,uploadfiles位于server目录底下,所以imagePath的值应该设置为“admin/server/”。此处之所以从根目录开始,原因同完整版部署时候说的一样,是因为editor_config.js被index.php导入,所以其真实路径就是根目录。 另外一个state参数则是由后台的具体逻辑来确定,其值可自定义,但如果上传成功,必须返回“SUCCESS”字符串,其他状态将直接在预览框中展示。
到此为止,图片上传所需要的所有配置和修改就已经完成了。在地址栏中输入地址,体验下UEditor提供的强大的图片上传功能吧!
PS:JSP版的图片上传采用了commons-fileupload包,请先下载commons-fileupload-1.2.2.jar,并将其加入到项目中的WEB-INF/lib/目录下方可正常使用

❹ 如何在前端用js进行多图片上传

    产品提了一个需求,要求在一个html中实现多行多图片上传,原型图如下:

    2.1 :html

        html页面由前端实现,此处增加<ul><li></li></ul>是为了配合图片单击放大图片功能的实现

        <ul  id="ul_other">

              <li><input type="file" id="file_other" class="file_input" onchange="add_file_image('other')"></li>

        </ul>

    2.2 :js

        var imgSrc_other=[];

        var imgFile_other=[];

        function add_file_image(id) {

            var fileList =document.getElementById("file_"+id).files;// js 获取文件对象

            if (verificationFile(fileList[0])){

                for(var i =0;i

                    var imgSrcI =getObjectURL(fileList[i]);

                        if (id=="other"){

                            imgSrc_other.push(imgSrcI);

                            if(fileList[i].size/1024 >100) { //大于100kb,进行压缩上传

                                 fileResizetoFile(fileList[i],0.6,function(res){

                                  imgFile_other.push(res);

                                })

                            }else{

                                imgFile_other.push(res);

                        }

                    }

                    addNewContent(id);

                }

        }

    //新增图片

    function addNewContent(obj) {

        //删除原先

        $("#ul_"+obj).html("");

        //判断循环新增

        var  text="";

        if (obj=="other"){

           for(var a =0;a < imgSrc_examReportCard.length;a++) {

            text +='<li><input type="file" id="file_other" class="file_input" onchange="add_file_image('other')"></li>';

           }

        }else{

            console.log('脏数据');

        }

        var oldBox ="<li><div class=\"filediv\"><span>+</span>\n" +

        "<input type=\"file\" id=\"file_"+obj+"\"  class=\"file_input\" onchange=\"add_file_image('"+obj+"')\">\n" +

        "</div></li>";

        $("#ul_"+obj).html( text+localText);

    }

    使用formData上传

    var form =document.getElementById("form_addArchive");//表单id

    var formData =new FormData(form);

    $.each(imgFile_other,function(i, file){

        formData.append('imgFileOther', file);

    });

$.ajax({

    url:url,

    type:'POST',

    async:true,

    cache:false,

    contentType:false,

    processData:false,

    dataType:'json',

    data:formData,

    xhrFields:{

        withCredentials:true

    },

    success:function(data) {

     }

  },

  error:function(XMLHttpRequest, textStatus, errorThrown) {

    }

})

后台使用@RequestParam(value ="imgFileOther", required=false) List<MultipartFile> imgFileOther, 接受

//获取图片url以便显示       

//文件格式验证

//图片压缩

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:425
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:550
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:736
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:529
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:139
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:227
java驼峰 发布:2025-02-02 09:13:26 浏览:644
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:527
linuxadobe 发布:2025-02-02 09:09:43 浏览:205
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:720