द्वारा जेनरेट की गई फ़ाइल डाउनलोड करें मेरे पास मेरा निर्यात सर्लेट है, जो एक्सएलएसएक्स फाइलें (एक्सेल) उत्पन्न कर रहा है जो मेरा उपयोगकर्ता निर्यात बटन पर क्लिक करके मेरे जीडब्ल्यूटी एप्लिकेशन से अनुरोध करेगा।पोस्ट डेटा के साथ जीडब्ल्यूटी से कॉल सर्वलेट और सर्वलेट
यदि मैं जीईटी दृष्टिकोण का उपयोग करता हूं, तो उपयोगकर्ता को फ़ाइल डाउनलोड करने के लिए कहा जाता है। कोड इस तरह दिखता है:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
try
{
byte[] xlsx = createTest("");
sendXLSX(resp, xlsx, "test.xlsx");
}
catch (Exception e)
{
e.printStackTrace();
}
}
void sendXLSX(HttpServletResponse response, byte[] bytes, String name)
throws IOException
{
ServletOutputStream stream = null;
stream = response.getOutputStream();
response.setContentType(CONTENT_TYPE_XLSX);
response.addHeader("Content-Type", CONTENT_TYPE_XLSX);
response.addHeader("Content-Disposition", "inline; filename=" + name);
response.setContentLength((int) bytes.length);
stream.write(bytes);
stream.close();
}
यह निम्नलिखित तरीके से GWT ग्राहक द्वारा लाया जाता है:
String url = GWT.getModuleBaseURL() + "ExportServlet";
Window.open(url, "", "");
और उपयोगकर्ता फ़ाइल डाउनलोड करने के लिए कहा जाता है। अच्छा, जो मैं चाहता हूं :)
लेकिन मैं अनुरोध में बहुत से डेटा संलग्न करना चाहता हूं, और इसके अलावा, यूआरएल पैरामीटर में आप कितना डेटा डाल सकते हैं ("ExportServlet? Data = ... "), इसलिए मैं इसके बजाय एक POST अनुरोध में लपेटना चाहता हूं।
String url = GWT.getModuleBaseURL() + "ExportServlet";
RequestBuilder builder = new RequestBuilder(
RequestBuilder.POST, url);
Request response = builder.sendRequest("test data", new RequestCallback()
{
@Override
public void onResponseReceived(Request request, Response response)
{
System.out.println("");
}
@Override
public void onError(Request request, Throwable exception)
{
System.out.println("");
}
});
और यह मेरा सर्वलेट में:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
try
{
String data = req.getReader().readLine();
byte[] xlsx = createTest(data);
sendXLSX(resp, xlsx, "test.xlsx");
}
catch (Exception e)
{
e.printStackTrace();
}
}
लेकिन उपयोगकर्ता फ़ाइल डाउनलोड करने का संकेत नहीं है
मैं GWT से निम्नलिखित की कोशिश की है। डूपोस्ट विधि का आह्वान किया जाता है और डेटा सर्वलेट द्वारा प्राप्त होता है, लेकिन क्या मुझे XWSX फ़ाइल को जीडब्ल्यूटी ऐप में प्राप्त प्रतिक्रिया से निकालना है? और मुझे ऐसा करने का क्या लगता है?
कोई मदद या टिप्पणी :)
फोन मैं इस पोस्ट पाया: http://stackoverflow.com/questions/7282987/handle-attachment-in-response-with-requestbuilder-in-gwt जो मेरे प्रश्न का उत्तर दे सकता है। मैं इसे आज़माउंगा और आपको लोगों को बता दूंगा :) (इस एसओ प्रश्न के साथ लिंक को लिंक/लिंक करने के बारे में नहीं पता) –
आपने अभी यह किया है :) –