当前位置:编程学习 > JAVA >>

Struts 文件上传与文本框

求助,请问各位大神,struts上传文件时,怎么在同一个表单里,既上传文件,同时接收到文本框的内容,我百度了很久就是找不到方案,鄙人是学生,是自学的,望指导。。。。以下是测试代码。
//X.jsp  ........................................................................
    <form action="upload.action" method="post" enctype="multipart/form-data">
                            姓名:<input type="text" name="uName" /> 
     上传的图片:<input type="file" name="uploadFile" />
     <input type="submit" value="上传" />
    </form>


//struts.xml  ..................................................................
        <action name="upload" class="com.keke.action.uploadAction">        
 <interceptor-ref name="fileUpload">
               <param name="allowedTypes">image/jpeg,text/xml,application/msword,application/ppt,text/plain,text/html,image/pjpeg,application/vnd.ms-excel</param>
               <param name="maximumSize">102400000</param>
      </interceptor-ref>

      <interceptor-ref name="defaultStack"></interceptor-ref>
      <result name="str">/uFirst.jsp</result>
        </action>


//Action........................................................................
package com.keke.action;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class uploadAction extends ActionSupport {
private String uName;

private File uploadFile;

private String uploadFileName;

private String uploadFileContentType;

@Override
public String execute() throws Exception {
try {

String fpath = ServletActionContext.getServletContext().getRealPath("/imgtest") + "/";
FileUtils.copyFile(uploadFile, new File(fpath + uploadFileName));
System.out.println(fpath);
System.out.println(uName);
} catch (IOException e) {
e.printStackTrace();
}
return "str";
}

//...........................................................................................
public File getUploadFile() {
return uploadFile;
}

public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}

public void setUploadFileFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}

public String getUploadFileName() {
return uploadFileName;
}

public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}

public String getUploadFileContentType() {
return uploadFileContentType;
}

public void setUploadFileContentType(String uploadFileContentType) {
this.uploadFileContentType = uploadFileContentType;
}

public String getuName() {
return uName;
}

public void setuName(String uName) {
this.uName = uName;
}

}


struts 文件上传 文本框 --------------------编程问答-------------------- 可以 啊  你这不是已经写了 ,uName 是可以取到的 --------------------编程问答--------------------

HttpServletRequest request = ServletActionContext.getRequest().getParameter("text");
--------------------编程问答-------------------- 都一样的,该接受文件,接受文件。该接受文本框就文本框。 --------------------编程问答-------------------- 后台通过name取得上传的值 --------------------编程问答--------------------
引用 4 楼 u011559804 的回复:
后台通过name取得上传的值


http://blog.csdn.net/shadowsick/article/details/8903278
可以参考下我博客里的项目实例,相信对你有比较大的帮助,谢谢支持 --------------------编程问答--------------------
引用 5 楼 shadowsick 的回复:
Quote: 引用 4 楼 u011559804 的回复:

后台通过name取得上传的值


http://blog.csdn.net/shadowsick/article/details/8903278
可以参考下我博客里的项目实例,相信对你有比较大的帮助,谢谢支持


每个贴里都能看到你这句话。 --------------------编程问答--------------------
引用
#2
HttpServletRequest request = ServletActionContext.getRequest().getParameter("text");

HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
我通过这样得到了uName了,感谢2楼。 --------------------编程问答--------------------
引用 1 楼 u012463264 的回复:
可以 啊  你这不是已经写了 ,uName 是可以取到的

很神奇的是,我就是得不到uName,
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。
--------------------编程问答--------------------
引用 8 楼 Ke526 的回复:
Quote: 引用 1 楼 u012463264 的回复:

可以 啊  你这不是已经写了 ,uName 是可以取到的

很神奇的是,我就是得不到uName,
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。

不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。 --------------------编程问答--------------------
引用 9 楼 u012463264 的回复:
Quote: 引用 8 楼 Ke526 的回复:

Quote: 引用 1 楼 u012463264 的回复:

可以 啊  你这不是已经写了 ,uName 是可以取到的

很神奇的是,我就是得不到uName,
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。

不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。

一语惊醒梦中人啊!成功了,getuName()和setuName()方法换成getUName()和setUName()成功,这两个方法我都是用MyEclipse自动生成的,所以一直没有考虑它,太悲剧了,谢谢啊! --------------------编程问答--------------------
引用 10 楼 Ke526 的回复:
Quote: 引用 9 楼 u012463264 的回复:

Quote: 引用 8 楼 Ke526 的回复:

Quote: 引用 1 楼 u012463264 的回复:

可以 啊  你这不是已经写了 ,uName 是可以取到的

很神奇的是,我就是得不到uName,
System.out.println(uName);输出是null,
不过用2楼的方法
HttpServletRequest request = ServletActionContext.getRequest();
String uName3 = request.getParameter("uName");
这样得到uName了,一样感谢的你帮助。

不用那么写,也是能取到的 ,你的SET和get 方法写的有点问题 。自己好好看看。

一语惊醒梦中人啊!成功了,getuName()和setuName()方法换成getUName()和setUName()成功,这两个方法我都是用MyEclipse自动生成的,所以一直没有考虑它,太悲剧了,谢谢啊!
这个东西会用到反射机制的,命名和set,get 方法一定要规范。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,