ssh action中我的几个变量应该怎么录入到mysql数据库中,代码如下,我想把文件名和路径存到数据库里面谢谢
publicclassUploadActionextendsActionSupport{privateList<File>Filedata;//默认的客户端文件对象,命名...
public class UploadAction extends ActionSupport
{
private List<File> Filedata; // 默认的客户端文件对象,命名不符合java规范fileData
private List<String> FiledataFileName; // 客户端文件名
private List<String> imageContentType; // 客户端文件名类型
public List<File> getFiledata()
{
return Filedata;
}
public void setFiledata(List<File> filedata)
{
Filedata = filedata;
}
public List<String> getFiledataFileName()
{
return FiledataFileName;
}
public void setFiledataFileName(List<String> filedataFileName)
{
FiledataFileName = filedataFileName;
}
public List<String> getImageContentType()
{
return imageContentType;
}
public void setImageContentType(List<String> imageContentType)
{
this.imageContentType = imageContentType;
}
@Override
public String execute() throws Exception
{
if (Filedata == null || Filedata.size() == 0)
{
return null;
}
for (int i = 0; i < Filedata.size(); ++i)
{
String fileName = FiledataFileName.get(i); // 文件真名
long length = Filedata.get(i).length(); // 文件的真实大小
long time = System.currentTimeMillis();
// 将上传的文件保存到服务器的硬盘上
InputStream is = new BufferedInputStream(new FileInputStream(Filedata.get(i)));
HttpServletRequest request = ServletActionContext.getRequest(); // 获得ServletRequest对象
//request.getRealPath("/")已不建议使用,改为this.getServletContext().getRealPath("/")
System.out.println("path:"+ServletActionContext.getServletContext().getRealPath("/"));
File tempFile = new File(ServletActionContext.getServletContext().getRealPath("/uploadimages")+File.separator+fileName);
FileUtils.forceMkdir(tempFile.getParentFile()); // 创建上传文件所在的父目录
OutputStream os = new BufferedOutputStream( new FileOutputStream(tempFile));
int len = 0;
byte[] buffer = new byte[500];
while (-1 != (len = is.read(buffer)))
{
os.write(buffer, 0, len);
}
is.close();
os.flush();
os.close();
}
return null;
} 展开
{
private List<File> Filedata; // 默认的客户端文件对象,命名不符合java规范fileData
private List<String> FiledataFileName; // 客户端文件名
private List<String> imageContentType; // 客户端文件名类型
public List<File> getFiledata()
{
return Filedata;
}
public void setFiledata(List<File> filedata)
{
Filedata = filedata;
}
public List<String> getFiledataFileName()
{
return FiledataFileName;
}
public void setFiledataFileName(List<String> filedataFileName)
{
FiledataFileName = filedataFileName;
}
public List<String> getImageContentType()
{
return imageContentType;
}
public void setImageContentType(List<String> imageContentType)
{
this.imageContentType = imageContentType;
}
@Override
public String execute() throws Exception
{
if (Filedata == null || Filedata.size() == 0)
{
return null;
}
for (int i = 0; i < Filedata.size(); ++i)
{
String fileName = FiledataFileName.get(i); // 文件真名
long length = Filedata.get(i).length(); // 文件的真实大小
long time = System.currentTimeMillis();
// 将上传的文件保存到服务器的硬盘上
InputStream is = new BufferedInputStream(new FileInputStream(Filedata.get(i)));
HttpServletRequest request = ServletActionContext.getRequest(); // 获得ServletRequest对象
//request.getRealPath("/")已不建议使用,改为this.getServletContext().getRealPath("/")
System.out.println("path:"+ServletActionContext.getServletContext().getRealPath("/"));
File tempFile = new File(ServletActionContext.getServletContext().getRealPath("/uploadimages")+File.separator+fileName);
FileUtils.forceMkdir(tempFile.getParentFile()); // 创建上传文件所在的父目录
OutputStream os = new BufferedOutputStream( new FileOutputStream(tempFile));
int len = 0;
byte[] buffer = new byte[500];
while (-1 != (len = is.read(buffer)))
{
os.write(buffer, 0, len);
}
is.close();
os.flush();
os.close();
}
return null;
} 展开
展开全部
首先假设你已经知道怎么在action中调用dao完成数据库插入(java怎么连接mysql不用我说了吧,不懂的话百度一下)
其次,在action 中上传成功后,把你的文件名,路径传递给你的dao层就可以插入了
追问
我有好几个增删改查页面亲。都是用的Hibernate传入数据库的,这个上传的插件,是我直接在网上下载的。当时的代码就是这样的,跟我其他的那几个页面不太一样,我这个程序也没有Dao,action完就是business,然后是businessimpl,你说咋办亲
追答
首先你问的是如何保持文件名,而且你上传文件的页面不会有好几个吧?
把保存文件名到数据库的代码抽离出来成一个bean,在各个页面不就可以调用了吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |