Java 文件上传后重命名文件 public void handleFileUpload(FileUploadEvent事件){ ExternalContext extContext=FacesContext.getCurrentInstance().getExternalContext(); 文件结果=新文件(extContext.getRealPath(“//admin//images”)+“//”+event.getFile().getFileName()); //文件结果=新文件(“D:\\Netbeans项目\\mcGrawLibPro\\mcGrawLibPro war\\web\\item”,event.getFile().getFileName()); File bg=新文件(extContext.getRealPath(“//admin//images”)+“//macback.png”); 试一试{ 重命名(新文件(extContext.getRealPath(“//admin//images”)+“//bg.png”); 文件f1=新文件(extContext.getRealPath(“//admin//images”)+“//macback.png”); 结果:重命名为(f1); //系统输出打印LN(f1); 系统输出打印项次(结果); FileOutputStream FileOutputStream=新的FileOutputStream(结果); 字节[]缓冲区=新字节[缓冲区大小]; 整块; InputStream InputStream=event.getFile().getInputstream(); while(true){ bulk=inputStream.read(缓冲区); 如果(体积
我的问题是,当我上传一张图片类型png,如aaa.png,它可以上传到服务器上,但不能重命名,上传aaa.png后,我重新上传这张图片(aaa.png),它可以更改名称,但它有两个文件,一个是aaa.png,一个是macback.png 我的代码出了什么问题Java 文件上传后重命名文件 public void handleFileUpload(FileUploadEvent事件){ ExternalContext extContext=FacesContext.getCurrentInstance().getExternalContext(); 文件结果=新文件(extContext.getRealPath(“//admin//images”)+“//”+event.getFile().getFileName()); //文件结果=新文件(“D:\\Netbeans项目\\mcGrawLibPro\\mcGrawLibPro war\\web\\item”,event.getFile().getFileName()); File bg=新文件(extContext.getRealPath(“//admin//images”)+“//macback.png”); 试一试{ 重命名(新文件(extContext.getRealPath(“//admin//images”)+“//bg.png”); 文件f1=新文件(extContext.getRealPath(“//admin//images”)+“//macback.png”); 结果:重命名为(f1); //系统输出打印LN(f1); 系统输出打印项次(结果); FileOutputStream FileOutputStream=新的FileOutputStream(结果); 字节[]缓冲区=新字节[缓冲区大小]; 整块; InputStream InputStream=event.getFile().getInputstream(); while(true){ bulk=inputStream.read(缓冲区); 如果(体积,java,Java,我的问题是,当我上传一张图片类型png,如aaa.png,它可以上传到服务器上,但不能重命名,上传aaa.png后,我重新上传这张图片(aaa.png),它可以更改名称,但它有两个文件,一个是aaa.png,一个是macback.png 我的代码出了什么问题 谢谢大家! 以下是我认为您正在尝试的: 上载文件时,您希望将其命名为macback.png,而不是其原始文件名 上载第二个文件时,首先要将macback.png重命名为bg.png,然后将上载的文件另存为macback.png 如果是这种情
谢谢大家! 以下是我认为您正在尝试的:
public void handleFileUpload(FileUploadEvent event) {
ExternalContext extContext = FacesContext.getCurrentInstance().getExternalContext();
File result = new File(extContext.getRealPath("//admin//images") + "//" + event.getFile().getFileName());
// File result = new File("D:\\Netbeans Project\\mcGrawLibPro\\mcGrawLibPro-war\\web\\item", event.getFile().getFileName());
File bg = new File(extContext.getRealPath("//admin//images")+"//macback.png");
try {
bg.renameTo(new File(extContext.getRealPath("//admin//images")+"//bg.png"));
File f1 = new File(extContext.getRealPath("//admin//images") + "//macback.png" );
result.renameTo(f1);
//System.out.println(f1);
System.out.println(result);
FileOutputStream fileOutputStream = new FileOutputStream(result);
byte[] buffer = new byte[BUFFER_SIZE];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
FacesMessage msg = new FacesMessage("OK",
event.getFile().getFileName() + " was upload.");
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Can't upload!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
public void handleFileUpload(FileUploadEvent事件){
ExternalContext extContext=FacesContext.getCurrentInstance().getExternalContext();
文件结果=新文件(extContext.getRealPath(“//admin//images”)+“//macback.png”);
if(result.exists()){
renameTo(新文件(extContext.getRealPath(“//admin//images”)+“//bg.png”);
}
试一试{
File targetFile=新文件(extContext.getRealPath(“//admin//images”)+“//macback.png”);
FileOutputStream FileOutputStream=新的FileOutputStream(targetFile);
字节[]缓冲区=新字节[缓冲区大小];
整块;
InputStream InputStream=event.getFile().getInputstream();
while(true){
bulk=inputStream.read(缓冲区);
如果(体积<0){
打破
}
写入(缓冲区,0,大容量);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
FacesMessage msg=新的FacesMessage(“确定”,
event.getFile().getFileName()+“已上载。”);
FacesContext.getCurrentInstance().addMessage(null,msg);
}捕获(IOE异常){
e、 printStackTrace();
FacesMessage error=新的FacesMessage(“无法上载!”);
FacesContext.getCurrentInstance().addMessage(null,错误);
}
}
好的,让我们看看这次我是否拿到了:
public void handleFileUpload(FileUploadEvent event) {
ExternalContext extContext = FacesContext.getCurrentInstance().getExternalContext();
File result = new File(extContext.getRealPath("//admin//images") + "//macback.png");
if(result.exists()) {
result.renameTo(new File(extContext.getRealPath("//admin//images")+"//bg.png"));
}
try {
File targetFile = new File(extContext.getRealPath("//admin//images") + "//macback.png" );
FileOutputStream fileOutputStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[BUFFER_SIZE];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
FacesMessage msg = new FacesMessage("OK",
event.getFile().getFileName() + " was upload.");
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Can't upload!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
public void handleFileUpload(FileUploadEvent事件){
ExternalContext extContext=FacesContext.getCurrentInstance().getExternalContext();
文件结果=新文件(extContext.getRealPath(“//admin//images”)+“//”+event.getFile().getFileName());
if(result.exists()){
renameTo(新文件(extContext.getRealPath(“//admin//images”)+“//mackback.png”);
}
试一试{
File targetFile=新文件(extContext.getRealPath(“//admin//images”)+“//”+event.getFile().getFileName());
FileOutputStream FileOutputStream=新的FileOutputStream(targetFile);
字节[]缓冲区=新字节[缓冲区大小];
整块;
InputStream InputStream=event.getFile().getInputstream();
while(true){
bulk=inputStream.read(缓冲区);
如果(体积<0){
打破
}
写入(缓冲区,0,大容量);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
FacesMessage msg=新的FacesMessage(“确定”,
event.getFile().getFileName()+“已上载。”);
FacesContext.getCurrentInstance().addMessage(null,msg);
}捕获(IOE异常){
e、 printStackTrace();
FacesMessage error=新的FacesMessage(“无法上载!”);
FacesContext.getCurrentInstance().addMessage(null,错误);
}
}
我认为问题在于您试图过早地将结果
重命名为f1
。在您呼叫的位置public void handleFileUpload(FileUploadEvent event) {
ExternalContext extContext = FacesContext.getCurrentInstance().getExternalContext();
File result = new File(extContext.getRealPath("//admin//images") + "//" + event.getFile().getFileName());
if(result.exists()) {
result.renameTo(new File(extContext.getRealPath("//admin//images")+"//mackback.png"));
}
try {
File targetFile = new File(extContext.getRealPath("//admin//images") + "//" + event.getFile().getFileName() );
FileOutputStream fileOutputStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[BUFFER_SIZE];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
FacesMessage msg = new FacesMessage("OK",
event.getFile().getFileName() + " was upload.");
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Can't upload!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}