Невозможно создать временный файл в Java - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть метод Java, который принимает байтовый массив и значение String в качестве аргументов и возвращает объект File.Это код

public File createTempFile(byte[] byteArray, String fileName) throws IOException {
    String prefix = FilenameUtils.getBaseName(fileName);
    String suffix = getMimeType(byteArray);
    File tempFile = File.createTempFile(prefix, suffix, null);
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(tempFile);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    fos.write(byteArray);
    fos.close();
    return tempFile;
}

Когда я пытаюсь запустить его следующим образом

File myFile = tiedostoService.createTempFile(tiedosto.getContent(), attachment.getFileName());

Я получаю IOException вроде этого

java.io.IOException: Unable to create temporary file, C:\Users\ROSHAN~1\AppData\Local\Temp\kuva1068864619970584773image\png
at java.io.File$TempDirectory.generateFile(File.java:1921)
at java.io.File.createTempFile(File.java:2010)

из трассировки стека.видно, что он пытается создать файл типа C:\Users\ROSHAN~1\AppData\Local\Temp\kuva1068864619970584773image\png, а не C:\Users\ROSHAN~1\AppData\Local\Temp\kuva1068864619970584773image.png

Как я могу это исправить?Буду очень признателен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Я думаю, что есть дополнительная \ в вашей строке суффикса, не могли бы вы попробовать отладку и увидеть фактическое значение суффикса?

Я попытался запустить:

String suffix = "\\png";

и получилта же ошибка, но если у меня

String suffix = ".png";

нет ошибок при создании временного файла, обратите внимание, что вам нужно добавить точку в суффиксе ...

0 голосов
/ 27 сентября 2018

'image / png' - Mime Type.Посмотреть все MimeTypes в java здесь

Написать утилиту, которая преобразует mimetype в расширение файла.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...