kabul eder.
Olağan adımlar olacaktır:
- yapı FileItemFactory
- yapı ServletFileUpload o fabrikayı geçen
- çağrı ServletFileUpload.parseRequest (istek)
Bu cevap mantığıyla 2 & 3 değiştirir Servlet'lerden bağımsız olarak - ServletFileUpload (servlete özel) ve onun ataları FileUpload'u (dosya konumunu mutlak yol adıyla kontrol etmek için) kullanmayı önler. Not: (3) genellikle FileItemFactory.createItem'e iletilen alt düzey parametreleri belirlemek için HTTP istek parametrelerini inceler - bu parametreler el ile sağlanır ve yalnızca bilgi amaçlı meta veriler olarak kullanılır. 2 & 3 için yedek:
- (FileItemFactory.createItem ile - elle genellikle ServletFileUpload.upload() üzerinden tespit edilen alt düzey parametreleri, sağlamak için ihtiyaç) FileItem yapısı mutlak belirli bir dosya için
- yazma,
- yol
MultipartFile
aşağıda verilmiştir Talep edilen kod aracılığıyla dosyayı yükleyin. Sonunda ortak kodu çağırır - Servlet yükleme ile paylaşılır.
// Initialise Apache Commons FileItemFactory for API use only
FileItemFactory fif = new DiskFileItemFactory(sizeThreshold, repositoryBaseDirFile);
// Create Apache Commons FileItem & write file at fullFilePathString into it
FileItem fi = fif.createItem(fieldName, contentType, isFormField, fileName);
fi.write(new java.io.File(new java.net.URI(fullFilePathString));
// Convert FileItem to Spring wrapper: CommonsMultipartFile
org.springframework.web.multipart.MultipartFile mf = new CommonsMultipartFile(fi);
// From here, reuse the same code as the servlet upload. Operate only upon
// Spring MultipartFile, but not ServletFileUpload, FileItemFactory etc...
Parametreler:
- fullFilePathString: mutlak yol (Dize gibi) dosya
- fieldName
yüklenecektir: Formdaki alanın adıdır
(Be bayt bellek boyutu eşiğini (genellikle dosyalar daha küçük sadece ve dosyalar bellek kullanılarak yüklenir: ServletFileUpload & FileUpload, yalnızca aşağıdaki haline meta veri alanlarını kaçınılır ve)
- sizeThreshhold işlenmesi kontrol için kullanılmaz neden daha büyük disk üzerinden yüklenir - ancak bu mantık dosyaları her zaman disk üzerinden yüklenir). Varsayılan = DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD.
- repositoryBaseDireFile: alanın içerik türü (MIME türü) tarih: genellikle (Dosya türü olarak) dosya yükleme 'geçici' dizini, ancak bu mantık dosyayı
- contentType yüklemek için mutlak bir yol kullanır form (çok parçalı form alanı yoksa null)
- isFormField: düz form alanı, 'true' ise, çok parçalı alan varsa yanlış. Dosya adı - genellikle form/istemci ile belirtilmiş olan dosyanın adı.
CommonsMultipartFile file = request. (Myfile) ifadenizle biraz kafam karıştı. Dosya yükleme api, bir öğe listesi döndürür. Liste öğeleri = fileUpload.parseRequest (istek); Ne demek istiyorsun? – Zenil
@Zenil özür dileriz, bu 'request.getFile ('myfile')' – Anthony
olmalıdır 'RandomAccessFile' kullanabilirsiniz. İşte örnek. https://opencast.jira.com/svn/MH/contrib/BigFileUploader/Upplet/src/upplet/Uploader.java –