选择上传图片后要截取 “C:\Documents and Settings\Administrator\桌面\xxxxx.JPG” 然后根据当前日期年月在项目的image目录下,建立一个年的文件夹和月的文件夹,比如说2009/09/xxxx.jpg,但是图片的名字要重新命名,根据自己的算法,并保存图片,如果目录存在就不新建了,请问怎么写代码?并且存进数据的信息就是“2009/09/修改名字后的片名”,到时候读出来是要连接的,怎么写关键代码?
解决方案 »
- Servlet里面跳转JSP页面报错。大家帮忙看一下
- 求一正则表达式?
- 云计算
- 学软件一年感觉很茫然,希望有经验点的老大们帮帮忙。
- struts spring hibernate 整合 ,无法找到 action : 页面提示: Servlet action is not available。 急!
- 帮我看看:为什么我的服务没发布上去?
- 关于appfuse的一个问题,请高手看看
- 在线等!!!!出现这种错误我该怎么办!说实话,我对TOMCAT一点也不熟悉,公司网站现在访问主页就成这个样子,公司只有我一个新来的,我
- 请问java_home和tomcat_home两个环境变量分别是作什么用的,谢谢!!
- 有人用过rowset-1_0-ea4吗?里面有一个很好用的CachedRowSet
- 跪求高手赐教
- 小弟在线等 贴出代码检查原因
2:创建流去读取这个图片到字节数组中,并且根据2009/09/***.jpg这个路径创建流,将流写到这里面。目录存在的判断是File的isDirectory() .楼主字节搞定代码吧,GOOD LUCK!
FTPClient ftpClient = null;
// 得到FTP客户端连接
try {
ftpClient = FtpClientManager.getFTPClient();
// 存放到FTP上面的全路径名
String ftpFileName = this.getRootPath()+this.createFTPFileName(ftpClient, ftpName)
+ System.getProperty("file.separator")
+ this.createFileName(hm, type);
//String localFileName = this.createLocalName(upName);
this.upload(ftpFileName, is, ftpClient);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
ftpClient = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private void upload(String serverName, InputStream is, FTPClient ftpClient) {
//InputStream is = null;
try {
// 创建文件输入流
// is = new FileInputStream(is);
// 设置编码格式
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 解决中文文件名乱码问题
ftpClient.setControlEncoding("GBK");
// 保存文件
ftpClient.storeFile(serverName, is);
//System.out.println(ftpClient.makeDirectory("ttt"));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private void upload(String serverName, InputStream is, FTPClient ftpClient) {
//InputStream is = null;
try {
// 创建文件输入流
// is = new FileInputStream(is);
// 设置编码格式
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 解决中文文件名乱码问题
ftpClient.setControlEncoding("GBK");
// 保存文件
ftpClient.storeFile(serverName, is);
//System.out.println(ftpClient.makeDirectory("ttt"));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private void upload(String serverName, InputStream is, FTPClient ftpClient) {
//InputStream is = null;
try {
// 创建文件输入流
// is = new FileInputStream(is);
// 设置编码格式
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 解决中文文件名乱码问题
ftpClient.setControlEncoding("GBK");
// 保存文件
ftpClient.storeFile(serverName, is);
//System.out.println(ftpClient.makeDirectory("ttt"));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
[code=Java]private void upload(String serverName, InputStream is, FTPClient ftpClient) {
//InputStream is = null;
try {
// 创建文件输入流
// is = new FileInputStream(is);
// 设置编码格式
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 解决中文文件名乱码问题
ftpClient.setControlEncoding("GBK");
// 保存文件
ftpClient.storeFile(serverName, is);
//System.out.println(ftpClient.makeDirectory("ttt"));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}[/code]
private String createFTPFileName(FTPClient ftpClient, String serverName)
throws IOException {
// 得到FTP服务器根路径并生成存放到FTP的路径
ftpClient.cwd(getRootPath());
if (StringUtils.isNotBlank(serverName)) {
StringBuffer str = new StringBuffer();
String[] paths = serverName.split("/");
for (int i = 0; paths != null && i < paths.length; i++) {
// 构造路径FTP
str.append(System.getProperty("file.separator")).append(
paths[i]);
// 没有指定的路径时创建文件路径
ftpClient.makeDirectory(paths[i]);
ftpClient.cwd(paths[i]);
}
return str.toString();
}
return serverName; }/**
*
* @createTime 11:36:15 AM
* @param sfzh
* 身份证号或者体检流水号
* @param fileType
* 文件后缀
* @return 生成的文件名
* @application
*/
private String createFileName(String sfzh, String fileType) {
if (StringUtils.isBlank(sfzh)) {
return null;
} else {
if (StringUtils.isBlank(fileType)) {
return sfzh + "." + "JPG";
}
}
return sfzh + "." + fileType;
}自己修改吧上面是FTP上传
有生成文件名的,有创建文件。文件不存在时创建,存在时直接上传 还有配置上网查一下一大堆
下面是伪代码,没测试:
FormFile ff = getUploadFile("..");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH");
String path = "/images/" + sdf.format(new Date()); //格式化当前时间
//获取path对应服务器端的真实路径
String realPath = request.getSession().getServletContext().getRealPath(path);
File file = new File(realPath);
if(!file.exist()) file.makeDirs(); //路径不存在则创建一个新的String uuid = UUID.randomUUID().toString(); //上传文件在服务器保存的名称(唯一)
path += "/" + uuid;
String ext = .. //通过FormFile获取上传文件的后缀名
path += ext;