Я пытаюсь загрузить файл изображения в локальную папку и получаю сообщение об ошибке «Файл не найден». Местоположение, указанное в сообщении об ошибке для загружаемого файла, неверно. На самом деле местоположение файла, отображаемое при ошибке, является комбинацией моего исходного и конечного местоположения. Я пытаюсь загрузить файл на «C: / Users / sam // File / Upload /» со своего рабочего стола. Вот код ошибки,
Сообщение об ошибке
java.io.FileNotFoundException: C:\Users\sam\File\Upload\C:\Users\sam\Desktop\test.jpg (The filename, directory name, or volume label syntax is incorrect)
Мой файл класса
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import org.apache.commons.io.IOUtils;
import org.primefaces.event.FileUploadEvent;
@ManagedBean
public class FileUploadView {
private String fileUploadFolder = "C:/Users/sam/File/Upload/";
public void handleFileUpload(FileUploadEvent event) {
FacesMessage message = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, message);
try {
File targetFolder = new File(fileUploadFolder);
InputStream input = event.getFile().getInputstream();
OutputStream output = new FileOutputStream(new File(targetFolder,
event.getFile().getFileName()));
try {
IOUtils.copy(input, output);
} finally {
IOUtils.closeQuietly(input);
IOUtils.closeQuietly(output);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
и мой HTML
<p:fileUpload fileUploadListener="#{fileUploadView.handleFileUpload}"
mode="advanced" dragDropSupport="false" update="messages"
sizeLimit="100000000" fileLimit="1"
allowTypes="/(\.|\/)(gif|jpe?g|png|xlsx|jpg)$/" />
Я также пробовал пример из BalusC, но все же получение той же ошибки, пользовательский интерфейс с Primefaces 5.1.