首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

关于上传资料获取绝对路径(转载)

2013-08-16 
关于上传文件获取绝对路径(转载)?name 在Action中对应File[] image 可以改为其他名称import java.io.File

关于上传文件获取绝对路径(转载)
?name 在Action中对应File[] image 可以改为其他名称

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.Writer;

import java.util.List;

import org.apache.struts2.ServletActionContext;

import org.jsoup.helper.HttpConnection.Response;

import com.jpsycn.kfwggl.common.tools.CopyDataToDatabase;

import com.jpsycn.kfwggl.common.tools.readExcel;

import com.opensymphony.xwork2.ActionSupport;

-----------------------控制层

@SuppressWarnings("serial")

public class UpLoadAction extends ActionSupport{

? ? private File[] image; //上传的文件 name="image"

? ? private String[] imageFileName; //文件名称

? ? private String[] imageContentType; //文件类型

? ? private String savePath;

?

? ? @SuppressWarnings({ "static-access", "unchecked" })

@Override

? ? public String execute() throws Exception {

? ? String msg;

? ? ? ? ServletActionContext.getRequest().setCharacterEncoding("UTF-8");

? ? ? ? List<List<String>> lt=null;

? ? ? ? boolean u=false;

? ? ? ? boolean d=false;

? ? ? ??

? ? ? ? try {

? ? ? ?//取得需要上传的文件数组

? ? ? ?File[] files = getImage();

? ? ? ?if (files !=null && files.length > 0) {

? ? ? ? ? ?for (int i = 0; i < files.length; i++) {

? ? ? ? ? ? ? ?//建立上传文件的输出流, getImageFileName()[i]

? ? ? ? ? ?String url=getSavePath() + "\" + getImageFileName()[i];

? ? ? ? ? ?FileOutputStream fos = new FileOutputStream(url);

? ? ? ? ? ? ? ?//建立上传文件的输入流

? ? ? ? ? ? ? ?FileInputStream fis = new FileInputStream(files[i]);

? ? ? ? ? ? ? ?byte[] buffer = new byte[1024];

? ? ? ? ? ? ? ?int len = 0;

? ? ? ? ? ? ? ?while ((len=fis.read(buffer))>0) {

? ? ? ? ? ? ? ? ? ?fos.write(buffer, 0, len);

? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ?fos.close();

? ? ? ? ? ? ? ?fis.close();

? ? ? ? ? ?//System.out.println(url);

? ? ? ? ? ?lt=new readExcel().readExcel(url);

? ? ? ? ? ?if(i==0){

? ? ? ? ? ?u=new CopyDataToDatabase().addUser(lt,"TB_USER");

? ? ? ? ? ?}else if(i==1){

? ? ? ? ? ?d=new CopyDataToDatabase().addDepart(lt, "TB_DEPART");

? ? ? ? ? ?}else if(i==2){

? ? ? ? ? ?new CopyDataToDatabase().add_user_depart(lt, "TB_USER_DEPART");

? ? ? ? ? ?}

? ? ? ? ? ?}

? ? ? ?}

? ? ? ?if(u==false||d==false){

? ? ? ?msg="faile";

? ? ? ?}else{

? ? ? ?msg="success";

? ? ? ?}

? ? } catch (Exception e) {

? ? msg="faile";

e.printStackTrace();

}

? ? ? ? return msg;

? ? }

? ? public File[] getImage() {

? ? ? ? return image;

? ? }

?

? ? public void setImage(File[] image) {

? ? ? ? this.image = image;

? ? }

?

? ? public String[] getImageFileName() {

? ? ? ? return imageFileName;

? ? }

?

? ? public void setImageFileName(String[] imageFileName) {

? ? ? ? this.imageFileName = imageFileName;

? ? }

?

? ? public String[] getImageContentType() {

? ? ? ? return imageContentType;

? ? }

?

? ? public void setImageContentType(String[] imageContentType) {

? ? ? ? this.imageContentType = imageContentType;

? ? }

?

? ? /**

? ? ?* 返回上传文件保存的位置

? ? ?*?

? ? ?* @return

? ? ?* @throws Exception

? ? ?*/

? ? public String getSavePath() throws Exception {

? ? ? ? return ServletActionContext.getServletContext().getRealPath(savePath);

? ? }

?

? ? public void setSavePath(String savePath) {

? ? ? ? this.savePath = savePath;

? ? }

注:savePath在struts.xml中配置 配置的参数如:Excel 必须在项目中有对应的名称为Excel的文件夹

-----------------struts.xml

<package name="upload1" namespace="/upload1" extends="struts-default">

? ? ? ? <action name="upload1" method="execute">

? ? ? ? ? ? <!-- 要创建/image文件夹,否则会报找不到文件 -->

? ? ? ? ? ? <param name="savePath">/Excel</param>

? ? ? ? ? ? <result name="success">/WEB-INF/system/import/message.jsp</result>

? ? ? ? ? ? <result name="faile">/WEB-INF/system/import/faile.jsp</result>

? ? ? ? </action>

? ? ? ? <action name="u_*" method="{1}">

? ? ? ? <result name="success">/WEB-INF/system/import/Import.jsp</result>

? ? ? ? </action>

? ? </package>

--------------jsp页面

<form id="myForm" enctype="multipart/form-data" method="post">

? ? <table width="100%" border="0" cellspacing="0">

? ? ? ?<tr>

? ? ? ?<td width="20%" nowrap="nowrap" >请选择存放用户的Excel文件:</td>

? ? ? ?<td><input type="file" id="userExcelURL" name="image" /></td>

? ? ? ?</tr>

? ? ? ?<tr>

? ? ? ?<td width="20%" nowrap="nowrap" >请选择存放机构的Excel文件:</td>

? ? ? ?<td><input type="file" ?id="departExcelURL" name="image" /></td>

? ? ? ?</tr>

? ? ? ?<tr>

? ? ? ?<td width="20%" nowrap="nowrap" >请选择存放用户和机构关联关系的Excel文件:</td>

? ? ? ?<td><input type="file" id="userAndDepartURL" name="image"/></td>

? ? ? ?</tr>

? ? ? ?<tr>

? ? ? ?<td>&nbsp;</td>

? ? ? ?<td><input type="button" value="导&nbsp;入" onclick="check()">

? ? ? ?<input type="reset" value="重&nbsp;置" class="btn">

? ? ? ?</td>

? ? ? ?</tr>

? ? </table>

? ? </form>

? </body>

?<script type="text/javascript">

?function check(){

?var userExcelURL=$("#userExcelURL").val();

?var departExcelURL=$("#departExcelURL").val();

?var userAndDepartURL=$("#userAndDepartURL").val();

?if(userExcelURL==""||userExcelURL.indexOf(".xls")<0){

?alert("请存放选择用户的Excel文件!");

?}else if(departExcelURL==""||departExcelURL.indexOf(".xls")<0){

?alert("请存放选择机构的Excel文件!");

?}else if(userAndDepartURL==""||userAndDepartURL.indexOf(".xls")<0){

?alert("请选择存放用户和机构关联关系的Excel文件!");

?}else{

?//alert(userAndDepartURL);

?var form=document.getElementById("myForm");

?form.action="<%=basePath%>upload1/upload1.do";

?form.submit();

?}

?

? ?</script>

?

-----------------------------------------

jsp页面不是异步提交 ?所以没有实现弹出对话框告知是否操作成功! ?菜鸟一个,知道的请赐教!

?

热点排行