请教一个图片上传的问题 请教一个问题后台用如下方式接收图片流:ServletInputStream inStream = request.getInputStream();需测试、前台客户端需怎么传才用这种形式接收请给个客户端例子,后台如何接收? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 页面form里面加上enctype=multipart/form-data属性然后form里面用<input type="file" name="fileName" >就可以了 看看 struts 的文件上传组件吧。 我将源码贴出,请参考(我给你的是多个文件上传Demo,单个文件上传,只需将Action中的file以及fileFileName属性类型改成非集合或数组型的即可):jsp页面的body:<body> <s:form action="upload" method="post" enctype="multipart/form-data"> <s:file name="file" size="20"></s:file> <s:file name="file" size="20"></s:file> <s:file name="file" size="20"></s:file> <s:file name="file" size="20"></s:file> <s:submit name="submit" value="submit"></s:submit> </s:form></body>服务器端代码:public class UploadAction extends ActionSupport implements Serializable{ /** * */ private static final long serialVersionUID = 1L; /** * 文件上传文件名为file+FileName固定写法 */ private File[] file; private String[] fileFileName; private String[] fileContentType; // public File getFile() { // return file; // } // public void setFile(File file) { // this.file = file; // } // public String getFileFileName() { // return fileFileName; // } // public void setFileFileName(String fileFileName) { // this.fileFileName = fileFileName; // } // public String getFileContentType() { // return fileContentType; // } // public void setFileContentType(String fileContentType) { // this.fileContentType = fileContentType; // } public String[] getFileFileName() { return fileFileName; } public File[] getFile() { return file; } public void setFile(File[] file) { this.file = file; } public void setFileFileName(String[] fileFileName) { this.fileFileName = fileFileName; } public String[] getFileContentType() { return fileContentType; } public void setFileContentType(String[] fileContentType) { this.fileContentType = fileContentType; } public String execute() throws Exception { for (int i = 0; i < this.file.length; i++) { System.out.println(i); InputStream is = new FileInputStream(this.file[i]);// request.getRealpath()方法已经过时// String root = ServletActionContext.getRequest().getRealPath("/upload");/* 同时提醒下你在工程的WebRoot目录下面见一个upload folder名字当然可以随便起了 */ String str = ServletActionContext.getServletContext().getRealPath("/upload"); File f = new File(str, this.fileFileName[i]); OutputStream os = new FileOutputStream(f); byte[] b = new byte[10000000]; while (is.read(b) != -1) { System.out.println(b.length); os.write(b, 0, b.length); } is.close(); os.close(); } return SUCCESS; }}关于文件上传更详细的内容,如:限制文件上传大小啊,文件上传类型啊,还有文件上传后临时文件存储的问题,你若想了解,我可以跟你一起探讨。希望以上代码对你有帮助! 关于DWR插入数据的问题,毫无头绪给点思路 初学java小问题 Hibernate导出数据库表的问题 抢分问题!!高手的进来! 有没有好的web services或者portal的电子教材? struts中bean:write标签问题,请教高手 讨论EJB群!10057492 欢迎加入! 【安装 Struts 失败, 那么简单也失败!!】 《精通EJB》里面的BMP出错。救命啊!! 在tomcat服务器上发布soap的问题,高分相赠 org.apache.commons.collections.Fasthashmap?? createSQLQuery executeQuery 执行结果不一样
然后form里面用<input type="file" name="fileName" >就可以了
<body>
<s:form action="upload" method="post" enctype="multipart/form-data">
<s:file name="file" size="20"></s:file>
<s:file name="file" size="20"></s:file>
<s:file name="file" size="20"></s:file>
<s:file name="file" size="20"></s:file>
<s:submit name="submit" value="submit"></s:submit>
</s:form>
</body>服务器端代码:
public class UploadAction extends ActionSupport implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 文件上传文件名为file+FileName固定写法
*/
private File[] file;
private String[] fileFileName;
private String[] fileContentType; // public File getFile() {
// return file;
// }
// public void setFile(File file) {
// this.file = file;
// }
// public String getFileFileName() {
// return fileFileName;
// }
// public void setFileFileName(String fileFileName) {
// this.fileFileName = fileFileName;
// }
// public String getFileContentType() {
// return fileContentType;
// }
// public void setFileContentType(String fileContentType) {
// this.fileContentType = fileContentType;
// } public String[] getFileFileName() {
return fileFileName;
} public File[] getFile() {
return file;
} public void setFile(File[] file) {
this.file = file;
} public void setFileFileName(String[] fileFileName) {
this.fileFileName = fileFileName;
} public String[] getFileContentType() {
return fileContentType;
} public void setFileContentType(String[] fileContentType) {
this.fileContentType = fileContentType;
}
public String execute() throws Exception {
for (int i = 0; i < this.file.length; i++) {
System.out.println(i);
InputStream is = new FileInputStream(this.file[i]);
// request.getRealpath()方法已经过时
// String root = ServletActionContext.getRequest().getRealPath("/upload");
/* 同时提醒下你在工程的WebRoot目录下面见一个upload folder名字当然可以随便起了 */
String str = ServletActionContext.getServletContext().getRealPath("/upload");
File f = new File(str, this.fileFileName[i]);
OutputStream os = new FileOutputStream(f); byte[] b = new byte[10000000];
while (is.read(b) != -1) {
System.out.println(b.length);
os.write(b, 0, b.length);
}
is.close();
os.close();
}
return SUCCESS;
}
}关于文件上传更详细的内容,如:限制文件上传大小啊,文件上传类型啊,还有文件上传后临时文件存储的问题,你若想了解,我可以跟你一起探讨。希望以上代码对你有帮助!