Статьи

Как загрузить с помощью апплета Postlet на Java


Postlet — это Java-апплет, используемый для загрузки файлов на веб-серверы.
Он поддерживает загрузку нескольких файлов, используя приятный и простой в использовании дизайн. Постлет предоставляет 4 основных функции:

• Индикатор выполнения файла
• Проверка ошибок
• Простой выбор и выгрузка нескольких файлов
• Изменение размера изображений в соответствии с заданным размером

Для начала вы должны загрузить Postlet, загрузку Java-апплета, с
http://postlet.com/ . Извлеките postlet.jar под своим веб-приложением.

Апплет можно настроить с помощью набора параметров:

• destination — это URL-адрес вашего сервлета, который будет принимать загрузку файла

• language — это язык, который используется для пользовательского интерфейса Postlet

• backgroundcolour — это цвет, используемый для фона Postlet

• tableheadercolour — это цвет, используемый для текста заголовков таблицы.

• tableheaderbackgroundcolour — это цвет, используемый для фона заголовков таблицы.

• fileextensions — это список расширений файлов.

• warnmessage — способность показывать предупреждающее сообщение после нажатия кнопки загрузки. Это значение может быть «true» или «false»

• autoupload — это возможность автоматической загрузки файлов после их выбора. Это значение может быть «true» или «false»

• кнопка помощи — это возможность показать кнопку помощи. Он работает на версиях, более новых, чем 0.10.0, и его значение может быть «true» или «false»

• maxpixels — максимальное количество пикселей, разрешенное для изображений GIF, JPEG и PNG при их загрузке. Если файлы превышают этот предел, они изменяются до установленного предела. Если изображения GIF изменяются, они загружаются в формате PNG. Работает на более новой версии, чем 0.13.

• helppage — это URL, который отображается, если пользователь нажимает кнопку справки. URL-адрес по умолчанию
http://www.postlet.com/help/

• maxthreads — максимальное количество используемых соединений. Может принимать значения от 1 до 5.

• Конечная страница — это URL-адрес, на который пользователь может перейти после завершения загрузки.

• Failedfilesmessage — возможность показывать всплывающее сообщение со списком файлов, которые не удалось загрузить

. Возможные конфигурации перечислены ниже:

<applet name="postlet" code="Main.class" 
archive="./applets/postlet.jar" width="850" height="150" mayscript>
<param name = "maxthreads" value = "5" />
<param name = "language" value = "" />
<param name = "type" value = "application/x-java-applet;version=1.3.1" />
<param name = "destination"
value = "http://localhost:8085/PostletUpload/applet_upload" />
<param name = "backgroundcolour" value = "56328145" />
<param name = "tableheaderbackgroundcolour" value = "24279327" />
<param name = "tableheadercolour" value = "0" />
<param name = "warnmessage" value = "false" />
<param name = "autoupload" value = "false" />
<param name = "helpbutton" value = "false" />
<param name = "fileextensions" value = "Image Files,jpg,gif,jpeg" />
<param name = "endpage" value = "[*** ENDPAGE URL***]" />
<param name = "helppage"
value = "http://www.postlet.com/help/?thisIsTheDefaultAnyway" />
</applet>

Когда загрузка заканчивается, функция JavaScript может запустить сообщение:


<script type="text/javascript">
function postletFinished(){
alert("Postlet Applet Succesfully Accomplished its Job!"); }
</script>

Для этого приложения (на стороне сервера) вы можете использовать COS, описанную в этом посте
Как загрузить в Java (Загрузить с помощью библиотеки COS) . Обратите внимание, что сообщения, возвращаемые сервером, должны, в частности, для отправки постлетов —
http://postlet.com/, вы можете увидеть полный список возможных ответов. Реализация COS для загрузки постлетов:

public class AppletUploadServlet extends HttpServlet {

protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

final int permitedSize = 314572800; //~ 300 MB bytes
final String[] extensions = {".zip",".xls"};

StringBuffer answer = new StringBuffer();
answer.append("POSTLET REPLY\nPOSTLET:YES\nEND POSTLET REPLY\n");

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "No-cache");
response.setDateHeader("Expires",0);

try{
String strDirectory = "files";
String uploadPath = request.getRealPath("//WEB-INF//"+strDirectory+"//");

//or, like this, from web.xml
String uploadPath_rezerva = request.getRealPath(getServletConfig().
getInitParameter("uploadPath"));

MultipartRequest multipartRequest = new MultipartRequest(request,
uploadPath, permitedSize, "ISO-8859-1", new DefaultFileRenamePolicy());

Enumeration files = multipartRequest.getFileNames();

String extension1 = "";
String extension2 = "";
String filename = "";

while (files.hasMoreElements())
{
String name = (String)files.nextElement();
filename = multipartRequest.getFilesystemName(name);
String originalFilename = multipartRequest.getOriginalFileName(name);

extension1 = filename.substring(filename.length() - 4, filename.length());
extension2 = originalFilename.substring(originalFilename.length() - 4,
originalFilename.length());

//use O'Reilly COS
File currentFile = multipartRequest.getFile(name);
}

out.println(answer);

}catch (Exception exception)
{
answer.delete(0, answer.length());
answer.append("POSTLET REPLY\nPOSTLET:NO\nPOSTLET:SERVER ERROR\n
POSTLET:ABORT ALL\nEND POSTLET REPLY\n");

out.println(answer);
} finally { if(out != null) {out.close();} }
}
}

Результат этого приложения показан ниже на рисунке ниже:



Загрузите полный пример, протестированный под Tomcat 6, отсюда .

 

От http://e-blog-java.blogspot.com/2011/03/how-to-upoad-with-postlet-applet-in.html