我用FCKeditor 上传了文件 图片等东西, 怎么样可以在后台管理实现文件管理呢,比如删除某个文件,先要得到完整路径名
解决方案 »
- 怎么在document.forms[i].elements[j]后面插入一个元素 希望大家指点下哦
- java applet 如何在ie中打开带参数链接
- HQL语句的查询条件属性深度问题
- jsp如何实现统计图片显示次数
- 急!急!急!JSP项目中遇到一个对数据表操作的问题,搞不定,请各们老大帮忙!!!
- servlet跟其他jar classpath的问题
- 怎么在JSP里让一段代码只执行一次,既加载时执行,以后同一个页面刷新时不在执行这段代码。我是新手,马上要用这个功能,急!!
- 请教在servlet中调用applet 怎么设置codebase
- 如何用过滤器改变请求中的参数值?
- Javaweb无法运行
- Hibernate Query 排序问题
- JavaScript字符串比较 困惑
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.PrintWriter;/**
* java.io.file工具
*
* @author xiaodong.lee
*/
public class FileUtils { /**
* 新建目录
*
* @param folderPath
* @author xiaodong.lee 2009-8-23
*/
public void creatFolder(String folderPath) {
try { File file = new File(folderPath);
if (!file.exists()) {
file.mkdirs();
}
} catch (Exception e) {
System.out.println("create folder failed!");
e.printStackTrace();
}
} /**
* 新建文件
*
* @param filePath
* @param fileContext
* @author xiaodong.lee 2009-8-23
*/
public void creatFile(String filePath, String fileContext) {
try { if (filePath != null && !"".equals(filePath)) {
String folder = filePath
.substring(0, filePath.lastIndexOf("/"));
creatFolder(folder);
} File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
if (fileContext != null && !"".equals(fileContext)) {
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.println(fileContext);
fileWriter.close();
printWriter.close();
} } catch (Exception e) {
System.out.println("create file failed!");
e.printStackTrace();
}
} /**
* 删除文件
*
* @param filePath
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteFile(String filePath) {
File file = new File(filePath);
Boolean flag = false;
if (file.isFile()) {
flag = file.delete();
}
return flag;
} /**
* 删除空文件夹
*
* @param folderPath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteNullFolder(String folderPath) { File file = new File(folderPath);
if (!file.isDirectory() || !file.exists()) {
System.out.println("路径不存在或者路径不是目录!");
return false;
} File[] fileList = file.listFiles();
if (fileList.length > 0) {
return false;
} file.delete(); return true;
} /**
* 删除目录下所有目录
*
* @param folderPath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteAllFolder(String folderPath) { File file = new File(folderPath);
if (!file.isDirectory() || !file.exists()) {
return false;
} File[] fileList = file.listFiles(); for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
File fileSon = fileList[i];
// 遍历判断是否为空目录,不是空目录删除目录下文件或目录
if (!deleteNullFolder(fileSon.toString())) {
deleteAllFolder(fileSon.toString());
deleteAllfiles(fileSon.toString());
fileSon.delete();
} else {
fileSon.delete();
}
}
} return true;
} /**
* 删除目录下所有文件
*
* @param filePath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteAllfiles(String filePath) { File file = new File(filePath);
if (!file.isDirectory() || !file.exists()) {
return false;
} File[] fileList = file.listFiles(); for (int i = 0; i < fileList.length; i++) {
if (!fileList[i].isDirectory()) {
File fileSon = fileList[i];
if (fileSon.isFile()) {
deleteFile(fileSon.toString());
}
}
}
return true;
} /**
* 删除目录下所有文件和目录
*
* @param filePath
* @author xiaodong.lee 2009-8-23
*/
public void deleteAll(String filePath) {
deleteAllfiles(filePath);
deleteAllFolder(filePath);
} /**
* 复制目录下单个文件
*
* @param oldPass
* @param newPath
* @return
* @author xiaodong.lee 2009-8-24
*/
public Boolean copyFile(String oldPath, String newPath) {
try {
File file = new File(oldPath);
if (file.isDirectory()) {
return false;
} if (file.exists()) {
FileInputStream inputStream = new FileInputStream(file);
FileOutputStream outputStream = new FileOutputStream(newPath);
BufferedInputStream reader = new BufferedInputStream(
inputStream);
int len = inputStream.available();
byte[] buffer = new byte[len]; reader.read(buffer, 0, len);
outputStream.write(buffer); inputStream.close();
outputStream.close(); reader.close(); }
} catch (Exception e) {
System.out.println("copy file failed!");
e.printStackTrace();
}
return true;
} /**
* 复制目录下所有文件和目录
*
* @param oldPath
* @param newPath
* @author xiaodong.lee 2009-8-24
*/
@SuppressWarnings("static-access")
public Boolean copyAllFile(String oldPath, String newPath) { File file = new File(oldPath); if (!file.exists()) {
return false;
} if (file.isFile()) {
copyFile(oldPath, newPath);
return false;
} File[] fileList = file.listFiles();
File mkdir = new File(newPath); if (!mkdir.exists()) {
mkdir.mkdirs();
} for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
copyAllFile(oldPath + fileList[i].separator
+ fileList[i].getName(), newPath
+ fileList[i].separator + fileList[i].getName());
} else {
copyFile(oldPath + fileList[i].separator
+ fileList[i].getName(), newPath
+ fileList[i].separator + fileList[i].getName());
}
} return true; }}别直接用了,研究下在用,很简单的
比如上传的文件存在项目中WEBROOT下面有个名字为upload的文件夹,获取全路径的方法是
String path = ServletActionContext.getRequest().getRealPath("upload");
path就是upload文件夹所在的绝对路径了。
如果上传时没有上传到WEBROOT下,而是指定到一个自定义的文件夹下,可以把该路径写在一个常量类里面。
~~~~~~~~~~~~
如果文件没有上传到本机上,而是上传到了另外一个专永的文件服务器上,就需要用FTP等方式来进行上传了。不过这时3楼的方法就不能用了。因为他只能应用服务器所在机器上的文件进行操作。