zoukankan      html  css  js  c++  java
  • 表单上传图片

    1.表单

    1.在form表单中加入属性enctype="multipart/form-data"

    2.给一个input type类型为file 的输入框还有给name

    2.配置

    在struts.xml中配置

    <!-- 设置struts2上传的文件大小,默认情况下的大小是2M ,默认单位是B,目前允

    许上传的最大为100M -->

    <constant name="struts.multipart.maxSize" value="104857600"/>

    3.controller/action(控制层)

    1.接收图片的参数定义规则:

    文件名称的接收:必须定义的是全局变量,表单中的file框中的name值加上FileName;

    2.接收文件内容的参数

    private File photo;属性名和input中的name值一样。

    4.文件的上传操作

    1.文件重命名

    2.文件的上传.

    package com.fh.action;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.util.UUID;

    import org.apache.struts2.ServletActionContext;

    /**

    * @ClassName: FileUpload

    * @Description: TODO(这里用一句话描述这个类的作用)

    * @author shangfeng

    * @date 2018-6-24 上午11:00:46*/

    public class FileUpload {

    private String photoFileName;

    private File photo;

    public void uploadFile() {

    System.out.println(photoFileName);

    // 第一大步就是给文件重命名

    // 先获取文件的后缀名

    String suffix =

    photoFileName.substring(photoFileName.lastIndexOf("."));

    System.out.println(suffix);

    // 获取一个32位的UUID

    String uuid = UUID.randomUUID().toString().replace("-", "");

    System.out.println(uuid);

    String newFileName = uuid + suffix;

    // 第二大步,就是将文件上传到指定文件夹中。

    // 1.获取项目的发布路径

    String realPath =

    ServletActionContext.getServletContext().getRealPath(

    "/");

    System.out.println(realPath);

    // 读取服务器上的文件目录

    File filemdk = new File(realPath + "/" + "photo");

    if (!filemdk.exists()) {

    filemdk.mkdirs();

    }

    // 输入流

    FileInputStream fis = null;

    // 输出流FileOutputStream fos = null;

    try {

    // 获取输入流

    fis = new FileInputStream(photo);

    // 构建输出流

    fos = new FileOutputStream(filemdk + "/" + newFileName);

    byte[] b = new byte[fis.available()];

    fis.read(b);

    fos.write(b);

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    try {

    if (fis != null) {

    fis.close();

    }

    if (fos != null) {

    fos.close();

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    public String getPhotoFileName() {

    return photoFileName;

    }

    public void setPhotoFileName(String photoFileName) {

    this.photoFileName = photoFileName;

    }public File getPhoto() {

    return photo;

    }

    public void setPhoto(File photo) {

    this.photo = photo;

    }

    }

    5.项目中的图片上传

    1.新增表单要加入图片上传功能。

    2.列表要进行图片展示

    3.修改表单要加入图片的回显展示和新图片的上传功能。

    action类中还要加入图片的删除造作

    String realPath = ServletActionContext.getServletContext()

    .getRealPath("/");

    String oldFilePath = game.getCimgurl();

    File file = new File(realPath + oldFilePath);

    if (file != null) {

    file.delete();

    }

  • 相关阅读:
    8.1.1 播放合成声音
    CSS 用伪类 :after 选择器清除浮动
    javascript 拖拽
    javascript 回到顶端
    用 console.time()和 console.timeEnd() 测试你的 javascript 代码执行效率
    【风马一族_代码英语】代码英语之五
    【风马一族_代码英语】代码英语之四
    【风马一族_代码英语】代码英语之三
    【风马一族_Android】第4章Android常用基本控件
    【风马一族_日常灵感】在美国得到的人生感悟
  • 原文地址:https://www.cnblogs.com/ycq-qiang/p/11268287.html
Copyright © 2011-2022 走看看