Jsp中如何实现服务器端的图片删除?

Jsp中如何实现服务器端的图片删除?,第1张

import javaioFile;
import orgapachelog4jLogger;public class ClearTempImg { private static final Logger logger = LoggergetLogger(ClearTempImgclass);
private final static String FS = SystemgetProperty("fileseparator");
private static String TOMCAT_HOME = SystemgetProperty("catalinahome");
private static String PATH = "temp";
private static final String TEMP_PATH = TOMCAT_HOME + FS + PATH + FS;
private static boolean isRunning = false;

/
说明:由于用户查询报表后非正常退出,JfreeChart产生的将存留在tomcat/temp/文件夹下
删除tomcat/temp/文件夹下面的无效的文件

/
public void run() {

if (!isRunning) {

loggerdebug("删除/Tomcat/Temp/目录下过期执行开始");

isRunning = true;

loggerdebug("开始执行删除tomcat下temp文件夹png文件任务");

loggerdebug("要删除文件所在路径为" + TEMP_PATH);

File fileTemp = new File(TEMP_PATH);

// 判断文件是否存在
boolean falg = false;

falg = fileTempexists();

if (falg) {

loggerdebug("temp文件存在");

if (true == fileTempisDirectory()) {

loggerdebug("temp文件是个目录");

String[] png = fileTemplist();

for (int i = 0; i < pnglength; i++) {

if (true == png[i]endsWith("png")) {

File file = new File(TEMP_PATH + FS + png[i]);

if (true==fileisFile()) {

boolean flag = false;
flag = filedelete();

if (flag) {
loggerdebug("成功删除无效文件:" + filegetName());
}
}
}
}
} } else {
loggerdebug("未找到tomcat/temp文件夹,执行失败,请手动删除temp下所有png文件");
}
isRunning = false;

loggerdebug("删除/Tomcat/Temp/目录下过期执行结束"); } }
}


//Struts2里面的写法是这样的。
//相对路径你应该知道到。
String relativePath = "/upload";
String absolutePath = ServletActionContextgetServletContext()getRealPath(relativePath);
//取出文件的绝对路径,然后用File方法删除相应文件。
File file = new File(absolutePath);
if (fileexists()) {
    filedelete();
}

在删除某个文件时,系统会给出各种各样的提示,反正就是死活不让删。造成这种情况的原因主要有三种:一是文件正在被系统使用,二是文件名中包含系统无法识别的字符,三是用户权限不够。我们主要研究前两种情况,下面做了个整理,帮你解决这个问题。
一、基本型
1分步删除。如果你删除的是一个文件夹,可以尝试先将文件夹中的文件删除,然后再删除该文件夹。还有一种办法是在该文件夹下面新建一个文件,再对文件夹执行删除 *** 作。
2改名删除。将不能删除的文件或文件夹改名后再删除。
3结束进程再删除。当你在删除文件时,如果系统提示“文件正在使用”,首先检查一下是否没有退出与被删文件相关的程序,再看看系统进程中是否还有相关进程保留。这种情况常常出现在我们卸载软件后删除软件残留在系统中文件的时候。
4重启后再删除。
5换个系统再删除。使用多系统的朋友可以切换到另外一个系统中执行删除 *** 作,这招比较有效。单系统的朋友则可以在DOS下使用RD(删除目录)或delete命令(删除文件)或者进入到安全模式底下进行删除 *** 作。
6结束掉Explorer进程后再删除。按下Ctrl+Alt+Del键打开任务管理器,切换到“进程”选项卡,结束掉Explorer进程,这时候桌面会丢失,不用着急,运行“文件→新任务”,输入“cmd”后回车打开命令行窗口,进入待删文件所在目 录,用RD或delete命令删除即可。删除完毕后再次运行“文件→新任务”命令,输入“explorer”后回车,桌面又回来了。
7关闭预览功能再删除。如果你在资源管理器中使用了视频、的预览功能,那么在删除此类文件时常常不成功,解决的办法是关闭该功能:Windows XP用户在“开始→运行”中输入“regsvr32 /u shmediadll”即可,Windows 2000用户则在资源管理器中的空白处单击鼠标右键,选择“自定义文件夹”选项,会出现自定义文件夹向导,进入到“请选择模板”窗口后,选择其中的“简易”便可以禁止视频预览了。
二、移花接木型
1覆盖文件再删除。在硬盘的另外区域新建一个和待删文件同名的文件,然后剪切并覆盖待删文件,最后再删除该文件。
2请常用软件“兼职”删除。我们可以使用Winrar、FlashFXP、Nero、ACDSee来删除顽固文件,这种方法往往有奇效。使用方法非常简单,以FlashFXP为例,只需在本地目录中浏览到待删文件,对其执行删除 *** 作即可。
注意:使用Winrar来删除文件的方法跟其它软件不同,步骤如下:右键单击待删除文件或者文件夹,选择“添加到档案文件”菜单,在谈出窗口中勾选“存档后删除源文件”,单击“确定”,这样Winrar在创建压缩文件的同时,也会帮我们删除顽固的文件,我们只 需要将创建的压缩文件删除即可。
3在别的机器上删除。如果你处于局域网中,可以尝试将待删文件所在的文件夹的属性设置为共享,并赋予读写权限,然后通过网上邻居或在所在的局域网内的其它的电脑上打开文件夹,执行删除 *** 作。另外如果你电脑中安装了FTP服务器,我们还可以试试从FTP登录 本机,然后删除待删文件。
4使用专业删除软件。大名鼎鼎的PC Tools这款小软件可以删除几乎所有“顽固”软件。运行软件后,先按任意键进入软件的主界面,然后按下F10并切换选中待删文件,按下D键并确认 *** 作即可删除

你可以从你网站的页面查看你上传的的路径,方法是鼠标右键单击选属性,可以查看路径,通常前面就是你的网站域名,后面就是你网站的目录名称,到你的服务器查找相应的目录就能找到你上传的文件,确定哪些是没用的可以直接删除!

我觉得你不如在删除那条记录的时候,把此记录导进另外一张表里去,然后用一个页面,或者程序,循环这个表内的记录, 先将磁盘上的文件删除之后,再彻底删除这个表里的记录。
也就是,分两步。先从主表中把记录转移到备删的表里,再从备删的表里读取数据,并删除磁盘上的文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13383360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存