单一文件上传

以下为在单一环境下的结果,如果加其他的框架可能有新问题
1:commons-fileupload-1.2.1.jar   commons-io-1.3.2.jar
2:<form action="fileUpload" method="post" enctype="multipart/form-data">
   <input type="file" name="image">
   <input type="submit" value="上传">
</form>


3:
package com.li.web.action.producttype;
import java.io.File;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport {
 private File image;

        private String imageContentType; //取得文件类型 实际上是 image+ContentType

 private String imageFileName;// 文件名实际上是 image+FileName
        public String getImageContentType() {
  return imageContentType;
 }

 public void setImageContentType(String imageContentType) {
  this.imageContentType = imageContentType;
 }

 public File getImage() {
  return image;
 }

 public String getImageFileName() {
  return imageFileName;
 }

 public void setImage(File image) {
  this.image = image;
 }

 public void setImageFileName(String imageFileName) {
  this.imageFileName = imageFileName;
 }

 @Override
 public String execute() throws Exception {
  // 得到站点的/images下绝对地址
  String realPath = ServletActionContext.getRequest().getSession()
    .getServletContext().getRealPath("/images");
  System.out.println(realPath);
  if (this.image != null) {

   File saveFile = new File(new File(realPath), this.imageFileName);
   if (!saveFile.getParentFile().exists()) {
    saveFile.getParentFile().mkdirs();
   }
   FileUtils.copyFile(this.image, saveFile);
   ActionContext.getContext().put("message","上传成功");
  }
  return "success";
 }

}

大小设置struts.xml  以下是10M 多点其中是总量.而不是单一文件 对应大容量很容易错误.即通过web是

不稳定的,需要插件解决
 <constant name="struts.multipart.maxSize" value="10701096" />

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在使用 element-ui 的 el-upload 组件时,可以通过设置 accept 属性来限制上传的文件类型。accept 属性可以接受一个字符串,用于指定可接受的 MIME 类型或文件扩展名。 例如,如果你只想允许上传图片文件,可以这样设置: ``` <el-upload class="upload-demo" action="/upload" :accept="'image/*'" :on-success="handleSuccess" :before-upload="beforeUpload"> <el-button size="small" type="primary">点击上传</el-button> </el-upload> ``` 上面的代码中,accept 属性的值为 `image/*`,表示只接受 MIME 类型为 image 开头的文件。你也可以使用具体的 MIME 类型或文件扩展名来限制文件类型,例如: - `image/png`:只接受 PNG 格式的图片文件。 - `.jpeg,.jpg,.png`:只接受扩展名为 jpeg、jpg 或 png 的图片文件。 需要注意的是,accept 属性并不是绝对可靠的,因为用户可以手动修改文件的 MIME 类型或扩展名。因此,你在后端也需要对上传的文件类型进行校验。 ### 回答2: el-upload是基于Element UI开发的文件上传组件,可以方便地实现文件的上传和预览功能。 在el-upload组件中,可以通过设置属性accept来限制文件的类型。accept属性的值可以是一个字符串或者一个字符串数组。当属性值为字符串时,表示限制上传的文件类型为指定的单一类型;当属性值为字符串数组时,表示限制上传的文件类型为指定的多个类型中的任意一种。 例如,如果我们想要限制只能上传图片类型的文件,我们可以这样设置accept属性: <el-upload accept="image/*" action="/upload" :before-upload="beforeUpload" > <el-button size="small" type="primary">点击上传</el-button> </el-upload> 上述代码中,accept属性的值为"image/*",表示只能上传图片类型的文件。"image/*"是一个通配符,表示允许上传以"image/"开头的文件类型,例如"image/png"、"image/jpeg"等。 如果我们想要限制只能上传图片和视频类型的文件,我们可以这样设置accept属性: <el-upload :accept="['image/*', 'video/*']" action="/upload" :before-upload="beforeUpload" > <el-button size="small" type="primary">点击上传</el-button> </el-upload> 上述代码中,accept属性的值为一个字符串数组,包含两个元素"image/*"和"video/*",表示只能上传以"image/"开头或者以"video/"开头的文件类型,即图片和视频类型的文件。 通过设置accept属性,我们可以灵活地限制el-upload组件的文件类型,以满足我们的需求。 ### 回答3: el-upload 是 Element UI 中的上传组件,用于实现文件上传功能。它提供了很多参数和选项来限制上传的文件类型。 首先,el-upload 组件通过设置 accept 属性来限制文件类型。可以通过设置 accept 属性为特定的文件扩展名或 MIME 类型来限制上传的文件类型。例如,设置 accept 属性为 "image/*" 可以只允许上传图片文件,设置为 "video/*" 可以只允许上传视频文件。 其次,el-upload 组件还可以通过设置 before-upload 属性来对文件进行进一步的限制。before-upload 属性接收一个函数,该函数会在文件上传之前被调用。在该函数中,我们可以通过判断文件的类型、大小等属性来决定是否继续上传。如果函数返回 false,则上传被中断,文件不会被上传。 除了以上两种方式,el-upload 还提供了其他一些属性和事件来限制文件类型。例如,通过设置 limit 属性可以限制一次只能上传的文件数量;通过设置 on-exceed 属性可以限制文件数量超过限制时的行为;通过设置 file-list 属性可以限制同时显示的文件数量。 总的来说,el-upload 提供了多种方式来对文件类型进行限制,可以通过设置 accept 属性、before-upload 属性、limit 属性等来满足不同的需求,并实现对文件上传的精确控制和限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值