Bir Java Desktop Env. (Hiçbir Android)NanoHTTPD: html formunu kullanarak bir dosya yükleyin (POST)
Her şey iyi çalışıyor ... ama dosya yükleme (PUT formlarla desteklenmez) İşte
benim HTML kodu POST yöntemini kullanıyor:<form method="post" enctype="multipart/form-data">
choose a file<br>
<input name="file" type="file" size="50" maxlength="100000"">
<button type="submit">upload</button>
</form>
Ve burada
public Response serve(IHTTPSession session) {
if (session.getMethod() == Method.POST) {
Map<String, String> files = new HashMap<String, String>();
session.parseBody(files);
//this prints {file=C:\path-to-java-tmp-files\NanoHTTPD-4635244586997909485}
//the number is always different
System.out.println(files.toString());
} else {
//page containing the index.html including the form
return page;
}
}
Ve
sorun: temp-dosya yok burada benim sunucu Methode olduğunu. Sonunda farklı bir "sayı" olan başka bir geçici dosya var ve bu doğru dosya gibi görünüyor, çünkü içerik yüklenen dosyanın içeriği ile aynı. Peki doğru temp-dosya adı nasıl alınır?Başka bir problem ise: İçerik pic veya bir ikili ise
-----------------------------115801144322347
Content-Disposition: form-data; name="file"; filename="filename.txt"
Content-Type: application/octet-stream
-->content of the uploaded file
-----------------------------115801144322347--
bu bir sorundur: geçici dosya deliği SONRASI içeriğe sahiptir.
Görünüşe göre NanoHTTPD bir POST isteğiyle herhangi bir konuşma yapmaz. Her zaman aynıdır ... isteği bir tmp dosyasına kaydetme ve sayfa sunma. So: - Doğru sıcaklık dosyası nasıl alınır? -> Bence bu bir hatadır. Doğru bir yol ve isim alıyorum ama "sayı" bozuk. idk ... bir yükleme gerçekleşirse java tmp yolunu geçici olarak değiştirmeli ve ardından dosyayı her zaman silmem gerekir. O zaman herhangi bir adlandırmadan bağımsız olarak sadece bir tmp dosyası var mı? - html isteği üstbilgisini dosyadan nasıl silebilirim
Ya da yanlış bir şey yapıyorum? Dosyaları nanohttpd'ye yüklemenin doğru yolu bu mu? Yardımınız için
thx!
Temmuz ayında yayınladığınızı biliyorum, ancak bir çözüm buldunuz mu? NanoHttpd ikili dosyaları – twig
No sry için bile readLine() kullanır çünkü bozuk PNG dosyaları alıyorum. Bir çözüm bulamadım: (Sadece vazgeçtim. – user3796786