Загрузка файлов в стойках 2 дает файлы с расширениями .tmp - PullRequest
2 голосов
/ 26 мая 2011

Это то, что я имею до сих пор.Я знаю, что файл работает, потому что, когда я форсирую расширение .jpg и загружаю изображение .jpg, он работает нормально.Но имя файла выглядит так с добавленным .jpg.

E: \ Documents and Settings \ mgrif002 \ Рабочий стол \ data \ upload_59fef24e_1302d1a3fb9__7ff5_00000001.tmp.jpg

try 
{
    String filePath = "E:/Documents and Settings/mgrif002/Desktop/data/";
    //System.out.println("Server path:" + filePath);
    System.out.println(form.getFile().getAbsolutePath());
    File fileToCreate = new File(filePath,form.getFile().getAbsolutePath()+".jpg");

    FileUtils.copyFile(form.getFile(), fileToCreate);

    Dicom dicom_file = new Dicom(pid,fileToCreate.getAbsolutePath(), form.getName(),true,((short)1));
    ccr.saveDicom(dicom_file);
} 
catch (IOException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}  

Ответы [ 2 ]

3 голосов
/ 30 июля 2012

это меня тоже убивало. Вот как я решил проблему. Думаю, это может спасти кому-то несколько драгоценных наших жизней:)

if (request instanceof MultiPartRequestWrapper) {
                MultiPartRequestWrapper multiWrapper =
                    (MultiPartRequestWrapper) request;
                if (multiWrapper != null) {
                    HttpServletRequest hrequest = (HttpServletRequest)request;

                    Enumeration fileParameterNames = multiWrapper.getFileParameterNames();              
                    //String fileName = multiWrapper.getFileNames("upload")[0];
                    if(fileParameterNames.hasMoreElements()){
                        String inputValue = (String) fileParameterNames.nextElement();
                        String[] localFileNames = multiWrapper.getFileNames(inputValue);
                        for (String fn : localFileNames) {
                            System.out.println("local filename = " + fn);                   
                        }
                        File[] files = multiWrapper.getFiles(inputValue);
                        HttpSession ses = hrequest.getSession();
                        User user = (User) ses.getAttribute("user");
                        IR loggedInIR = user.getIr();

                        for (File cf : files) {
                            File destFile = new File(cf.getParentFile().getAbsolutePath()+"\\"+loggedInIR.getId()+"\\images\\"+localFileNames[0]);
                            FileUtils.copyFile(cf, destFile);
                            FileUtils.deleteQuietly(cf);

                        }               
                    }
                }
            }
0 голосов
/ 26 мая 2011

Просто замените .tmp на .jpg вместо добавления .jpg.Существует несколько способов, таких как подстрока детали до последнего периода или регулярное выражение замены последней .tmp части и т. Д.

String fileName = form.getFile().getName().replaceAll("\\.tmp$", ".jpg");
File fileToCreate = new File(filePath, fileName);
// ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...