您的位置:首页 > 编程语言 > Python开发

python 安装easy_install和pip

2015-04-20 10:14 453 查看
最近在写测试 struts2 上传的时候发现个问题 。不知道你们谁有过相同的问题 。我的环境为 jdk1.5,tomcat6.10 。发现的问题就是我在上传多个问题的时候。第一次会失败,发现是没得到我的file对象。发现是没生成临时文件的缘故。点ie的 回退到上传页面(这个时候没刷新) 然后再上传。这样就会成功,这个时候的的临时文件被删除了的。。如果刷新了jsp页面的话 。就会提示空指针异常。我也试图写一个类型转换器 在操作file的时候就去判断file对象的问题。。发现表单的enctype="multipart/form-data" 而我写的 Converter 就没进去起作用了 。付上我的代码。大家研究下。
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>

<script type="text/javascript">

function addMore()
{
var td = document.getElementById("more");

var br = document.createElement("br");
var input = document.createElement("input");
var button = document.createElement("input");

input.type = "file";
input.name = "file";

button.type = "button";
button.value = "Remove";

button.onclick = function()
{
td.removeChild(br);
td.removeChild(input);
td.removeChild(button);
}

td.appendChild(br);
td.appendChild(input);
td.appendChild(button);

}

</script>

</head>

<body>

<table align="center" width="50%">
<tr>
<td>

<s:fielderror cssStyle="color:red" />

</td>
</tr>
</table>

<s:form action="upload" theme="simple" method="post" enctype="multipart/form-data">

<table align="center" width="50%" border="1">
<tr>
<td>
username
</td>
<td>
<s:textfield name="username"></s:textfield>
</td>
</tr>

<tr>
<td>
password
</td>
<td>
<s:password name="password"></s:password>
</td>
</tr>
<tr>
<td>
file
</td>

<td id="more">
<s:file name="file"></s:file><input type="button" value="Add More.." onclick="addMore()">
</td>
</tr>

<tr>
<td>
<s:submit value=" submit "></s:submit>
</td>

<td>
<s:reset value=" reset "></s:reset>
</td>
</tr>
</table>

</s:form>

</body>

</html>
下面是action
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
private String username;

private String password;

private List<File> file;

private List<String> fileFileName;

private List<String> fileContentType;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public List<File> getFile() {
return file;
}

public void setFile(List<File> file) {
this.file = file;
}

public List<String> getFileFileName() {
return fileFileName;
}

public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}

public List<String> getFileContentType() {
return fileContentType;
}

public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}

@Override
public String execute() throws Exception {
System.out.println(getFile().size());
for (int i = 0; i < file.size(); i++) {
InputStream is = new FileInputStream(file.get(i));

String root = ServletActionContext.getRequest().getRealPath("/upload");

File destFile = new File(root, this.getFileFileName().get(i));

OutputStream os = new FileOutputStream(destFile);

byte[] buffer = new byte[400];

int length = 0;

while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}

is.close();

os.close();
}

return SUCCESS;

}

}
下面是配置
<action name="upload" class="com.eagle.struts2.test.action.UploadAction">
<result name="success">/uploadResult.jsp</result>
<result name="input">/upload.jsp</result>
<!-- <param name="savePath">/upload</param> -->

<interceptor-ref name="fileUpload">
<param name="maximumSize">102400</param>
<!-- <param name="allowedTypes">application/vnd.ms-powerpoint</param> --><!--   在tocamt里面的webxml中可以找到 -->
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: