का उपयोग कर फ़ाइल अपलोड करें मैं जावा डेस्कटॉप एनवी पर नैनो एचटीटीपी वेबसर्वर 2.1.0 का उपयोग कर रहा हूं। (कोई Android)नैनो एचटीटीपीडी: एचटीएमएल फॉर्म (POST)
सब कुछ ठीक काम कर रहा है ... लेकिन POST विधि का उपयोग नहीं कर फाइल अपलोड (PUT रूपों के साथ समर्थित नहीं है)
यहाँ मेरी एचटीएमएल कोड है:
<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>
और
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;
}
}
और यहाँ समस्या है: अस्थायी-फ़ाइल मौजूद नहीं है यहाँ अपने सर्वर methode है। मौजूदा अंत में एक अलग "संख्या" वाला एक और अस्थायी फ़ाइल है और यह सही फ़ाइल प्रतीत होती है, क्योंकि सामग्री अपलोड की गई फ़ाइल की सामग्री के समान ही है। तो सही अस्थायी फ़ाइल नाम कैसे प्राप्त करें?
एक और समस्या है:
-----------------------------115801144322347
Content-Disposition: form-data; name="file"; filename="filename.txt"
Content-Type: application/octet-stream
-->content of the uploaded file
-----------------------------115801144322347--
यह एक समस्या है अगर सामग्री एक तस्वीर या एक द्विआधारी है: अस्थायी फ़ाइल छेद पोस्ट सामग्री है।
ऐसा लगता है कि नैनो एचटीटीपीडी पोस्ट अनुरोध के साथ कोई स्पीज़ियल नहीं करता है। यह हमेशा वही करता है ... एक tmp-file को अनुरोध सहेज रहा है और एक पृष्ठ की सेवा कर रहा है। तो: - सही temp-file कैसे प्राप्त करें? -> मुझे लगता है कि यह एक बग है। मुझे सही पथ और नाम मिल रहा है, लेकिन "संख्या" टूट गई है। idk ... अगर अपलोड होता है तो मैं अस्थायी रूप से जावा tmp-path को बदलना चाहिए और फिर हमेशा फ़ाइल को हटा देना चाहिए। तो मेरे पास केवल एक tmp-file किसी भी नामकरण से स्वतंत्र है? - फ़ाइल
से HTML अनुरोध शीर्षलेख को कैसे मारें या मैं कुछ गलत कर रहा हूं? क्या यह nanohttpd में फ़ाइलों को अपलोड करने का सही तरीका है? आपकी सहायता के लिए
thx!
मुझे पता है कि आपने जुलाई में पोस्ट किया था, लेकिन क्या आपको कभी समाधान मिला? मुझे दूषित पीएनजी फाइलें मिल रही हैं क्योंकि नैनो एचटीपीडी बाइनरी फाइलों के लिए भी readLine() का उपयोग करता है – twig
कोई नहीं। मुझे कोई समाधान नहीं मिला :(मैंने अभी छोड़ दिया। – user3796786