2013-04-05 3 views
1

Привет, загружая файл с помощью сервера weblogic. Временный файл загружаемого файла создается в папке E:\WL\user_projects\domains\AMS_domain\servers\AdminServer\tmp\_WL_user\GenesisDenmark\3m840e\public.хочу временно удалить временные файлы на weblogic

Если я загружаю test.zip, то это копируется в указанное место с именем test.tmp. Я хочу удалить его programmitcally. Я использую распорки 1.1.

Если кто-то сделал что-то похожее на это. Пожалуйста помоги.

Спасибо!

ответ

0

Возможно, по другой причине. вы действительно хотите программно удалить? Возможно, я ошибаюсь (дайте мне знать, если да), но вы можете использовать регулярное выражение для соответствия всем временным файлам. Но лучший подход будет заключаться в том, что если каждый раз при загрузке любого файла следует имя файла, найдите файл с тем же именем и расширением .tmp. Представьте этот файл объектом File, попытайтесь получить программный код, если этот конкретный файл существует, удалите этот файл. (В struts вы должны сделать это в классе Action или если вы используете Spring/EJB вместе со строками, вы должны сделать это в своей бизнес-логике .) Я думаю, что вам нужно сделать следующие шаги

1. Fetch the uploaded file name(As I think it will be with extension) 
2. get a substring of this file name upto the last location of . (to 
    get the file name without extension) 
3. append .tmp in that file name 
4. check the condition if that file exists in your uploading directory 
5. if so, delete the file 

Некоторые примеры кода, я надеюсь, что это может помочь вам:

 //Get the servers upload directory real path name 
      filepath = getServletContext().getRealPath("/")+"xml_upload"; 
      System.out.println("The file path is "+filepath); 
      //create the upload folder if not exists 
      File folder = new File(filepath); 
      if(!folder.exists()) 
      { 
      folder.mkdir(); 
      } 


    MultipartRequest m=new MultipartRequest(req,filepath); 
    ff=m.getFile("f"); 
    System.out.println("Full Path with file name:"+ff); 
    //get file name... 
    filename=ff.getName(); 
    System.out.println("file name is:"+filename); 

     //now here you have to get the file name without extension and then append the extension .tmp 
// now let the file is represented by a File object say ff ..... 

    if(ff.exists()) 
      { 
      System.out.println("File exist and it is going to delete."); 
      ff.delete() ; 
      } 

для одного из моего приложения загрузки XML я он же, по мере обновления xml-данных и отображения новых значений, и если пользователь захочет отказаться от обновления, сделанного файлом xml при нажатии на кнопку сброса n он вернет изменения и удалит загруженный XML-файл.

+0

Хей Шайлеш благодарит за вашу помощь. Но я просто попробовал, чтобы временные файлы удалялись самостоятельно через некоторое время. Моя проблема заключается в удалении кеша/истории браузера перед загрузкой файла. Поскольку моя задача - загрузить огромный файл, но поскольку в браузере или в форме уже есть огромные данные, он дает многостраничную ошибку при загрузке файла (это мое понимание получения множественной ошибки). –

+0

Могут возникнуть некоторые другие причины для многочастной ошибки. Убедитесь, что вы сохраняете enctype = multipart/form-data в теге формы. Во-вторых, чтобы очистить кэш-память браузера, вы можете использовать в вашей голове, тег и используйте <% response.setHeader («Pragma», «no-cache» "); response.setHeader («Cache-Control», «no-cache»); response.setDateHeader («Истекает», 0); %> в каждом jsp, где вы хотите очистить кеш при загрузке. –

+0

<% response.setHeader («Cache-Control», «no-cache»); // HTTP 1.1 System.out.print ("first"); response.setHeader ("Прагма", "нет кэша"); // HTTP 1.0 response.setDateHeader («Истекает», 0); // предотвращает кеширование на прокси-сервере%><вложенное: form action = "/ dataUploadActionNew" method = "post" enctype = "multipart/form-data"><% response.setHeader ("Cache-Control", "no- кэш "); // HTTP 1.1 System.out.println («второй»); response.setHeader ("Прагма", "нет кэша"); // HTTP 1.0 response.setDateHeader («Истекает», 0); // предотвращает кеширование на прокси-сервере%> –

Смежные вопросы