`
银河武林
  • 浏览: 10426 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

多文件上传,点击添加自动增加一行

阅读更多
里面的方法只是功能里头的一部分,主要是逻辑和一些关键的代码。见谅


//*****************************js上传图片的校验和添加效果*****************
$(function($){
addImgEvnt();
checkSubmit();
});

function addImgEvnt(){
        $("#addImgBtn").click(function(){
if($("#addImgBtn").next()!=null){//取消提示信息 最多只能添加5张图片
$("#addImgBtn").next().remove();
}
var i=$("#addDiv").index();
if(i<=4){
addImgInput(i);
}else{
$("#addImgBtn").after("<font color='red'>最多只能添加5张图片</font>");
}
});
}

function checkPic(value) {
    var picPath = value;
    var type = picPath.substring(picPath.lastIndexOf(".") + 1, picPath.length).toLowerCase();
    if (type != "jpg" && type != "bmp" && type != "gif" && type != "png"&& type != "jpeg") {
        alert("请上传正确的图片格式");
        return false;
    }
    return true;
}

//添加图片上传
function addImgInput(i){
var htmlInput;
htmlInput="<div class='b1' id=\"addImg_"+i+"\"><div class='bdmain'>  <input type='text' class='input_out_short' name='pk_img' id=\"img_"+i+"\"/>"+
"<div class='other'><div class='yanzhengma'><input type='button' class='fileImgs'/>"+
     "<input type='file' class='files' name='myFile' value='浏览' onchange=\"uploadImages(this,'img_"+i+"');\"/></div><a class='deleteImagesA' onclick=\"deleteImgInput('addImg_"+i+"',"+"'img_"+i+"');\">取消</a></div></div>";
$("#addDiv").before(htmlInput);
}

//取消
function deleteImgInput(id,preid){
$("#"+id).remove();//取消图片上传
//$("#pre_"+preid).remove();//取消预览图片
$("#pre_"+preid).parent().html('<img id="pre_'+preid+'" src="/image/index/zanwu.jpg"/>');//取消预览图片
if($("#divhead_"+preid)!=null){
$("#divhead_"+preid).parent().html('<img id="pre_'+preid+'" src="/image/index/zanwu.jpg"/>');//取消预览图片
$("#divhead_"+preid).remove();
}
if($("#addImgBtn").next()!=null){//取消提示信息 最多只能添加5张图片
$("#addImgBtn").next().remove();
}
}

function checkSubmit(){
$("#profile").focus(function(){
checkIMG("图片","img_one");
});
$("#FacBtn").click(function(){
if(check("园区描述","profile")){
$("form:first").submit();
}
});
}

//*****************************上传图片HTML***************************
<div class="tit">
      <em>*</em>厂房图片
</div>
<div class="includ">
    <div class="b1">
        <div class="bdmain" id="firstImg">
           <input type="text" name="f_img" id="img_0" class="input_out_short" onfocus="if(this.value==defaultValue) {this.value='';this.style.borderColor='#1e82de'}" onblur="if(!value) {value=defaultValue; this.style.borderColor='#e8e8e8'}" value="最多5张"/>
<div class="other">
   <div class="yanzhengma">
      <input type="button" class="fileImgs"/>
          <input  type="file" name="myFile" value="浏览"  class="files" onchange="uploadImages(this,'img_0');"/>
   </div>
</div>
      </div>
    </div>
   <div class="tianjia" id="addDiv"><a id="addImgBtn">添加</a></div>
</div>


//*****************************上传图片action方法***************************
// 循环上传
StringBuffer imgs = new StringBuffer();
   for (int i = 0; i < myFile.size(); i++) {
imageFileName.add(new Date().getTime() + i +   getExtention(this.getMyFileFileName().get(i)));
// 得到图片保存的位置(根据root来得到图片保存的路径在tomcat下的该工程里)
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("image/UploadImages") + "/"+ imageFileName.get(i));
copy(myFile.get(i), imageFile); // 把图片写入到上面设置的路径里
String img = imageFileName.get(i);
imgs.append(img).append(";");
     }
   factory.setF_image(imgs.toString().substring(0, imgs.length() - 1));


// 上传图片
private static void copy(File src, File dst) {
     try {
InputStream in = null;
OutputStream out = null;
try {
   in = new BufferedInputStream(new FileInputStream(src),BUFFER_SIZE);
   out = new BufferedOutputStream(new FileOutputStream(dst),BUFFER_SIZE);
   byte[] buffer = new byte[BUFFER_SIZE];
   while (in.read(buffer) > 0) {
out.write(buffer);
   }
} finally {
    if (null != in) {
in.close();
    }
   if (null != out) {
out.close();
   }
}
     } catch (Exception e) {
e.printStackTrace();
     }
}

// 获得文件的后缀名
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
return fileName.substring(pos);
}


分享到:
评论

相关推荐

    多个文件上传选择+表格自动生成

    "多个文件上传选择+表格自动生成"这一技术主题,主要聚焦于提高用户在上传多份文件时的便捷性和效率,同时通过自动生成表格来展示上传文件的相关信息。这种设计可以为用户提供直观的反馈,使他们能轻松跟踪和管理已...

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    4. **文字自动换行**:当文字长度超过一行时,需要进行换行处理。这可以通过计算每行能容纳的字符数,然后对输入的文字进行分割,确保每一行不超过这个限制。 5. **文件上传**:实现文件上传功能,可以使用Servlet...

    用批处理命令实现FTP文件的自动传输

    此外,如果是 Windows 操作系统之间进行 FTP 进行文件传输,只要去掉 1.ftp 中“Bin”一行就可以了。 在 UNIX 操作系统下,也可以使用 FTP 命令实现文件传输。例如,可以编写一个 shell 文件 ft.sh,内容如下: ...

    织梦5.6添加自动排版插件

    在【标题】"织梦5.6添加自动排版插件"中,提到的是如何为织梦5.6版本安装一个能自动优化文章排版的插件。这通常是为了提升用户体验,使得网站内容更易于阅读和导航。在【描述】中提到"未使用过5.7,估计也能用",这...

    jsch实现sftp文件上传、下载 ,jsch jar

    // 如果使用密钥对,注释掉上面一行,然后设置以下两行 // String privateKeyPath = "path/to/privatekey.pem"; // jsch.addIdentity(privateKeyPath); session.setConfig("StrictHostKeyChecking", "no"); // ...

    解决Struts2上传文件后文件大小变大

    在使用Struts2框架进行文件上传时,有时会遇到一个棘手的问题:上传后的文件大小比原始文件大。这不仅增加了服务器的存储负担,还可能导致其他一系列问题,如下载速度变慢、用户体验下降等。本文将详细介绍这一问题...

    邮件正确性过滤,自动添加分隔符程序

    手动添加起来非常费时费力,用此程序可快速完成该功能,并将转换后正确的与错误的邮件分别以TXT文件保存,而原始文件不变生成时可选择分隔符或自定义,生成的电子邮件可选择每行一个邮件地址或将所有地址放入一行,...

    上传文件到远程

    AccessFTP是一种强大的FTP客户端工具,它提供了方便、高效的文件上传功能。 FTP工作原理: FTP基于TCP/IP协议,通过建立两个连接来完成文件的传输:控制连接和数据连接。控制连接用于发送命令和接收响应,如登录、...

    59、文件上传dom事件处理1

    在点击添加文件时,会自动在 Files 表单行中添加一个文件上传表单行。但是,表单行的标签显示的是乱码,我们可以让表单行不显示标签,回到 CommentType,我们设置 entry_options,label 设置我们设置为 false。 在...

    poi批量上传EXCEL文件

    在IT行业中,尤其是在数据处理和自动化任务中,批量上传EXCEL文件是一项常见的需求。Apache POI 是一个流行的Java库,专门用于处理Microsoft Office格式的文件,包括Excel的.xls和.xlsx格式。本篇将深入探讨如何利用...

    Struts2+上传文件源码

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中实现文件上传功能是一项常见的需求,尤其...记住,实践是最好的老师,动手尝试并理解每一行代码是提升技能的关键。

    linux-结构化成行成列-小文件循环合并成大文件--方便上传hadoop

    在文本文件中,通常以换行符分隔每一行,而在每一行内,数据可能是以逗号或其他分隔符进行列分隔的。这样做的好处是便于数据分析工具(如Hive、Pig等)进行解析和处理。 描述中提到的"文件到达门限后上传",意味着...

    QTCreator 通过libcurl实现ftp和fts文件上传

    在IT行业中,开发人员经常需要处理文件的网络传输任务,比如FTP(文件传输协议)和FTPS(安全文件传输协议)的文件上传。QTCreator是一个功能强大的、跨平台的C++集成开发环境,它提供了丰富的API和工具来辅助开发...

    OpenCart批量上传插件安装及使用详细教程

    4.在 admin/view/template/common/header.tpl 文件中,添加一行代码,以便在后台添加批量上传功能的菜单项。查找 &lt;li&gt;&lt;a href="$backup; ?&gt;"&gt;$text_backup; ?&gt;&lt;/a&gt;&lt;/li&gt; 在其下添加 &lt;li&gt;&lt;a href="$export; ?&gt;"&gt;$text...

    VB Scoket HTTP上传文件实例.rar

    在文件上传场景下,VB应用需要构造一个HTTP请求,包含上传文件的相关信息,如文件名、文件类型等,并将文件内容作为请求体的一部分发送。 3. **文件上传流程**: - **建立连接**:首先,VB应用需要通过Socket建立...

    用Java实现FTP批量大文件上传下载

    ### 用Java实现FTP批量大文件上传下载的关键技术与实现 #### 一、引言 在当前互联网技术的发展中,文件传输是不可或缺的一部分。尤其是在工程建设项目中,常常需要跨地域的大规模文件交换。传统的HTTP传输方式虽然...

    《自动驾驶中的SLAM技术》对应开源代码1. 添加详细代码注释 2. 添加深蓝第一期课后习题与大作业的修改C++源码+文档说明

    添加深蓝第一期课后习题与大作业的修改C++源码+文档说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...

    NSMutableURLRequest-Upload, 专门针对文件上传的 NSMutableURLRequest 分类.zip

    这样的方法使得调用者只需一行代码就能完成复杂的文件上传操作。 总结起来,`NSMutableURLRequest-Upload`是一个针对iOS开发中文件上传场景的解决方案,它通过扩展`NSMutableURLRequest`类,提供了一种简洁的方式来...

    php文字水印,支持自动换行

    一种常见做法是先计算每个单词(或汉字)的宽度,然后遍历文本,当达到指定的宽度阈值时,将文本换到下一行。这需要使用`imagettfbbox`函数来测量每个文字的尺寸,然后进行适当的调整。 4. **编码支持**:在处理...

    commons-文件上传必备jar包二合一-io1.4+fileupload1.2.1

    Apache Commons项目为开发者提供了两个非常重要的库:Commons IO和Commons FileUpload,这两个库使得文件上传操作变得简单易行。在"commons-文件上传必备jar包二合一-io1.4+fileupload1.2.1"中,包含了这两个库的...

Global site tag (gtag.js) - Google Analytics