![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 205
|
Привет всем. Есть клиентский код, который передаёт pdf - файл на сервер и сервлет принимающий этот код и перенаправляющий его в броузер.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class CreatePDFServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doGet(req, resp);
}
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
int i = 0;
int k = 0;
int maxLength = req.getContentLength();
byte[] bytes = new byte[maxLength];
String method = req.getParameter("method");
String name = req.getParameter("name");
ServletInputStream si = req.getInputStream();
while (true)
{
k = si.read(bytes,i,maxLength);
i += k;
if (k <= 0)
break;
}
if (bytes != null)
{
ServletOutputStream stream = resp.getOutputStream();
resp.setContentType("application/pdf");
resp.setContentLength(bytes.length);
resp.setHeader("Content-Disposition",method + ";filename=" + name);
stream.write(bytes);
stream.flush();
stream.close();
}
else
{
resp.setContentType("text");
resp.getWriter().write("bytes is null");
}
}
}
public function save ( method:String, url:String='', downloadMethod:String='inline', fileName:String='output.pdf', frame:String="_blank" ):* { dispatcher.dispatchEvent( new ProcessingEvent ( ProcessingEvent.STARTED ) ); var started:Number = getTimer(); finish(); dispatcher.dispatchEvent ( new ProcessingEvent ( ProcessingEvent.COMPLETE, getTimer() - started ) ); buffer.position = 0; var output:* = null; switch (method) { case Method.LOCAL : output = buffer; break; case Method.BASE_64 : output = Base64.encode64 ( buffer ); break; case Method.REMOTE : var header:URLRequestHeader = new URLRequestHeader ("Content-type","application/octet-stream"); var myRequest:URLRequest = new URLRequest (url+'?name='+fileName+'&method='+downloadMethod ); myRequest.requestHeaders.push (header); myRequest.method = URLRequestMethod.POST; myRequest.data = buffer; navigateToURL ( myRequest, frame ); break; default: throw new Error("Unknown Method \"" + method + "\""); } return output; } Другие отображалки файл сохранённый из под линуха так - же не хавают. В чём может быть причина, хелп плиз? Добавлено через 1 час 42 минуты В процессе загрузки понял, что проблема именно в передаче с клиента т.к. если передавать не то, что с клиента пришло, а какой - нибудь pdf, то он показывается. Однако почему так происходит по прежнему хз Добавлено через 24 часа 38 минут Похоже, что игнорируются настройки mime - type, однако почему так присходит - хз. Может кто - нибудь знает? Последний раз редактировалось VovkaMorkovka1; 11.06.2009 в 20:32. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|