「java删除上传的文件」怎样删除上传文件

博主:adminadmin 2023-01-23 16:39:10 339

本篇文章给大家谈谈java删除上传的文件,以及怎样删除上传文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA怎么实现删除远程FTP服务器上的某一文件

一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,

(1):Java FTP主文件代码:

package ftpDemo;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import sun.net.TelnetInputStream;

import sun.net.TelnetOutputStream;

import sun.net.;

public class ftpUtil {

// 上传文件至FTP通用方法

public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName为上传的文件名

DataOutputStream dataOut = new DataOutputStream(telnetOut);

byte buffer[] = new byte[ * ];

int count = ;

while ((count = is.read(buffer)) != -) {

dataOut.write(buffer, , count);

}

telnetOut.close();

dataOut.close();

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

// 删除文件至FTP通用方法

public static void deleteFileFtp(KmConfig kmConfig,String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

try {

ftpClient.sendServer("dele " + fileName + "\r\n");

} catch (Exception e) {

System.out.println("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("删除文件失败!");

}

}

// 下载ftp文件

public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

try {

TelnetInputStream in = ftpClient.get(fileName);

byte[] bytes = new byte[];

int cnt=;

while ((cnt=in.read(bytes,,bytes.length)) != -) {

outputStream.write(bytes, , cnt);

}

outputStream.close();

in.close();

} catch (Exception e) {

ftpClient.closeServer();

e.printStackTrace();

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

//在ftp服务器上传件文件夹

public boolean createDir(String path,FtpClient ftpClient) throws Exception{

//进入到home文件夹下

ftpClient.cd("/home");

//创建远程文件夹

//远程命令包括

//USER  PORT  RETR  ALLO  DELE  SITE  XMKD  CDUP  FEATbr

//     PASS  PASV  STOR  REST  CWD   STAT  RMD   XCUP  OPTSbr

//     ACCT  TYPE  APPE  RNFR  XCWD  HELP  XRMD  STOU  AUTHbr

//     REIN  STRU  SMNT  RNTO  LIST  NOOP  PWD   SIZE  PBSZbr

//     QUIT  MODE  SYST  ABOR  NLST  MKD   XPWD  MDTM  PROTbr

//        在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/nbr

//          ftpclient.sendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令br

//          ftpclient.readServerResponse一定要在sendServer后调用br

//          nameList("/test")获取指目录下的文件列表br

//          XMKD建立目录,当目录存在的情况下再次创建目录时报错br

//          XRMD删除目录br

//          DELE删除文件br

//通过远程命令 穿件一个files文件夹

ftpClient.sendServer("MKD "+ path + "\r\n");

//这个方法必须在 这两个方法中间调用 否则 命令不管用

ftpClient.binary();

ftpClient.readServerResponse();

return false;

}

/**

* 检查文件夹是否存在

* @param dir

* @param ftpClient

* @return

*/

public boolean isDirExist(String dir, FtpClient ftpClient) {

try {

ftpClient.cd(dir);

} catch (Exception e) {

return false;

}

return true;

}

}

(2):KmConfig.java代码如下:定义FTP服务器参数,包括登录的用户名密码之类的。

package ftpDemo;

public class KmConfig {

//主机ip

private String FtpHost = "";

//端口号

private int FtpPort;

//ftp用户名

private String FtpUser = "";

//ftp密码

private String FtpPassword = "";

//ftp中的目录

private String FtpPath = "";

public String getFtpHost() {

return FtpHost;

}

public void setFtpHost(String ftpHost) {

FtpHost = ftpHost;

}

public int getFtpPort() {

return FtpPort;

}

public void setFtpPort(int ftpPort) {

FtpPort = ftpPort;

}

public String getFtpUser() {

return FtpUser;

}

public void setFtpUser(String ftpUser) {

FtpUser = ftpUser;

}

public String getFtpPassword() {

return FtpPassword;

}

public void setFtpPassword(String ftpPassword) {

FtpPassword = ftpPassword;

}

public String getFtpPath() {

return FtpPath;

}

public void setFtpPath(String ftpPath) {

FtpPath = ftpPath;

}

}

(3):下面是测试代码:

JAVA 怎么删除上传到硬盘的附件

import java.io.File;

/**

*

* 2007-11-27

* 删除文件或目录

* @author 计春旭 E-mail: jichunxu@yahoo.com.cn

* @version 创建时间:Jun 16, 2009 9:50:44 AM

* @see java.lang.Class

* @since JDK1.5

*/

public class DeleteFileUtil {

/**

* 删除文件,可以是单个文件或文件夹

* @param fileName 待删除的文件名

* @return 文件删除成功返回true,否则返回false

*/

public static boolean delete(String fileName){

File file = new File(fileName);

if(!file.exists()){

System.out.println("删除文件失败:"+fileName+"文件不存在");

return false;

}else{

if(file.isFile()){

return deleteFile(fileName);

}else{

return deleteDirectory(fileName);

}

}

}

/**

* 删除单个文件

* @param fileName 被删除文件的文件名

* @return 单个文件删除成功返回true,否则返回false

*/

public static boolean deleteFile(String fileName){

File file = new File(fileName);

if(file.isFile() file.exists()){

file.delete();

System.out.println("删除单个文件"+fileName+"成功!");

return true;

}else{

System.out.println("删除单个文件"+fileName+"失败!");

return false;

}

}

/**

* 删除目录(文件夹)以及目录下的文件

* @param dir 被删除目录的文件路径

* @return 目录删除成功返回true,否则返回false

*/

public static boolean deleteDirectory(String dir){

//如果dir不以文件分隔符结尾,自动添加文件分隔符

if(!dir.endsWith(File.separator)){

dir = dir+File.separator;

}

File dirFile = new File(dir);

//如果dir对应的文件不存在,或者不是一个目录,则退出

if(!dirFile.exists() || !dirFile.isDirectory()){

System.out.println("删除目录失败"+dir+"目录不存在!");

return false;

}

boolean flag = true;

//删除文件夹下的所有文件(包括子目录)

File[] files = dirFile.listFiles();

for(int i=0;ifiles.length;i++){

//删除子文件

if(files[i].isFile()){

flag = deleteFile(files[i].getAbsolutePath());

if(!flag){

break;

}

}

//删除子目录

else{

flag = deleteDirectory(files[i].getAbsolutePath());

if(!flag){

break;

}

}

}

if(!flag){

System.out.println("删除目录失败");

return false;

}

//删除当前目录

if(dirFile.delete()){

System.out.println("删除目录"+dir+"成功!");

return true;

}else{

System.out.println("删除目录"+dir+"失败!");

return false;

}

}

//删除文件夹

//param folderPath 文件夹完整绝对路径

public static void delFolder(String folderPath) {

try {

delAllFile(folderPath); //删除完里面所有内容

String filePath = folderPath;

filePath = filePath.toString();

java.io.File myFilePath = new java.io.File(filePath);

myFilePath.delete(); //删除空文件夹

} catch (Exception e) {

e.printStackTrace();

}

}

//删除指定文件夹下所有文件

//param path 文件夹完整绝对路径

public static boolean delAllFile(String path) {

boolean flag = false;

File file = new File(path);

if (!file.exists()) {

return flag;

}

if (!file.isDirectory()) {

return flag;

}

String[] tempList = file.list();

File temp = null;

for (int i = 0; i tempList.length; i++) {

if (path.endsWith(File.separator)) {

temp = new File(path + tempList[i]);

} else {

temp = new File(path + File.separator + tempList[i]);

}

if (temp.isFile()) {

temp.delete();

}

if (temp.isDirectory()) {

delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件

delFolder(path + "/" + tempList[i]);//再删除空文件夹

flag = true;

}

}

return flag;

}

public static void main(String[] args) {

//String fileName = "g:/temp/xwz.txt";

//DeleteFileUtil.deleteFile(fileName);

String fileDir = "D:\\apache-tomcat-6.0.18\\webapps\\cyfy\\upload\\disk\\1245117448156\\JavaScript486.rar";

//DeleteFileUtil.deleteDirectory(fileDir);

DeleteFileUtil.delete(fileDir);

DeleteFileUtil t = new DeleteFileUtil();

delFolder("c:/bb");

System.out.println("deleted");

}

}

java删除上传到oracle数据库的图片,删除记录的同时删除数据库本地图片,如何删除记录的同时定位到图片?

1、明白一些概览:

1)上传的图片并没有真正的存储在oracle数据库里,orcale数据库里其实存储的是图片的路径。

2)从浏览器上传图片到后端Action,action调用相应文件存储逻辑(文件存储系统)由文件存储系统完成图片的存储,并返回文件的路径。最后将这个路径保存到oracle数据库(这个部分可以很简单也可以很复杂视实际情况而定)。

2、相关删除逻辑,通过数据库里的文件路径找到实际的存储位置执行删除。删除成功后再删除数据库里相关记录。

java上传文件时用户不提交表单,上传的文件怎么删除?

这个涉及到异步文件上传的功能设计。

思路:

1.

先把文件上传道服务器,并保存一条相关数据到数据库中,状态标识为-(未启用)并设置过期时间,同时把文件上传的url反馈给客户端,实现回显

2.

当用户提交了表单之后,就把先前上传的文件的状态标识更新为

----已经生效

3.

如果用户不提交表单,则文件到达了过期时间可以利用java程序去删过期的文件(未生效

过期 )

Java 程序做文件(excle,txt)上传,然后在删除的问题

我觉得一楼说的对,我刚才试了下,就是这个原因,你可以参看我写的一个程序:

========================Code begin ==========================

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

/**

* @author limingatcn

* @time Jan 22, 2009 10:11:59 AM

* @version 1.0

*/

public class TestDelete {

public void readInfoFromFile() {

// 先声明以备用

File file = new File("c:\\test.txt");

FileInputStream fis = null;

byte[] b = null;

int i = 0;

// 处理

try {

fis = new FileInputStream(file);

// byte数组不要越界

b = new byte[123456];

while (fis.available() 0) {

i += fis.read(b);

}

String str = new String(b, 0, i);

System.out.println(str);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

// 执行删除操作

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

file.delete();

System.out.println("The file was removed.");

}

}

/**

* @param args

*/

public static void main(String[] args) {

new TestDelete().readInfoFromFile();

}

}

========================Code end ============================

在finally中要执行 关闭你所打开读流的对象 的操作,

在这个程序中如果没有finally中的fis.close()

test.txt就出现你说的删除不掉的情况

结合这个程序你再试试。

关于java删除上传的文件和怎样删除上传文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。