В этой статье используется конкретный код для Java для реализации функции загрузки и загрузки файлов для вашей ссылки. Конкретный контент заключается в следующем
Фронт-энд использует свойство Enctype формы формы для изменения метода доставки данных в форме двоичного «потока». Сервер (Сервлет) получает информацию о потоке через getInputStream () и использует основные операции потока ввода -вывода Java, чтобы записать поток в температуру файла, временно созданный сервером. Затем используйте основные операции файлов снова, чтобы прочитать и перехватить содержимое временного файла, создайте соответствующий файл на основе информации в нем, и напишите конкретную информацию. При загрузке найдите соответствующий файл на сервере на основе отправленного имени файла, а затем выведите его на страницу в соответствии с выходным потоком Outstream и установите тип ответа и заголовок ответа сервлета.
Конкретный процесс передачи выглядит следующим образом:
Часть информации о потоке:
Конкретный код заключается в следующем:
Фронт-элитный код:
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <Title> вставьте заголовок здесь </title> <script src = "js/jquery.js"> </script> </head> <body> <form action = "fileupservelt" = "method" = "method" = "method" = "method" = "method" ectype = "multipart/form-data"> <table> <tr> <td> Пожалуйста, выберите файл загрузки: </td> <td> <input id = "myfile" name = "myfile" type = "value ="/> </td> <td> <input type = "value =" upload "> </td> </td> <td> <input =" value = "upload"> </td> </td> <tr> <td> $ {info} </td> </tr> </table> </form> Загрузка файла: <a href = "fileloadownservlet? filename = $ {filename}"> $ {filename} </a> </body> </html>Загрузить часть сервлета (ядро)
@Webservlet ("/fileupservlet") public class fileupservlet расширяет httpservlet {private static final long serialversionuid = 1l; / ** * @see httpservlet#httpservlet () */ public fileupservlet () {super (); // TODO Автогенерированный конструктор STUB}/ ** * @see httpservlet#doget (httpservletrequest, httpservletresponse response) */ Защищенный Doget (httpservlectrequest, httpsersersponse response) Dopost (запрос, ответ); } / ** * @see httpservlet#dopost (httpservlectrequest, httpservletresponse response) * / Защищенный void dopost (httpservletrequest, httpservletresponse response). request.setcharacterencoding ("UTF-8"); InputStream filesource = request.getInputStream();//request gets stream information String tempname = "D:/temp";//tempfile represents temporary storage of files File tempfile = new File(tempname);//create temporary file FileOutputStream outputStream = new FileOutputStream(tempfile);//Output stream object, specifying the output refers to the tempfile directory byte b[] = new байт [1024]; int n; while ((n = filesource.read (b))! = -1) // Читать 1024 байт из выходного потока каждый раз, пока вы не закончите чтение {outputstream.write (b, 0, n); } outputstream.close (); filesource.close (); // Закрыть поток ввода и вывода/*Ниже приведены конкретные операции файлов, главным образом для анализа временных сгенерированных временных файлов, и большая часть знаний является содержанием ввода Java и потока вывода! */ RandomAccessFile randomfile = new RandomAccessFile(tempfile, "r");//Random stream, specify to read temporary files, read only randomfile.readLine();//Read the first line, invalid data, no String str = randomfile.readLine();//Read the second line int beginIndex = str.lastIndexOf("=")+2;//Specify the starting position of the required data int Endindex = str.lastIndexof ("/" "); // указать местоположение требуемого файла строки данных = str.SubString (beginIndex, endIdex); // перехватывание имени файла // Пересмотр файла указатель и получить содержимое файла randomFile.seek (0); // По указатель файла начинается с начала long startext = 0; int i = 1; // // файл. while (n = randomfile.readbyte ())! randomfile.getFilePointer (); GetServletContext (). GetRealPath ("/")+"Images"; // Установите систему каталога файла. Randomaccessfile randomaccessfile = new randomaccessfile (savefile, "rw"); randomaccessfile.close (); «+fileName+" Загружено успешно! "); request.setAttribute (" filename ", имя файла); request.getRequestDispatcher ("/fildeop.jsp ").Скачать раздел
Защищенная void Dopost (httpservletrequest, httpservletresponse response) бросает ServletException, ioException {// TODO Auto Generated Method String String Filename = request.getParameter ("filename"); String path = getServletContext (). GetRealPath ("/")+"Images/"; File file = new File (path+filename); // file if (file.exists ()) {response.setContentType ("Application/x-msdownload"); // Установите тип ответа, вот загрузка типа response.setheader ("Content-Disposition", "Attactment; filename =/" "+filename+"/""); // Откройте inputStream inputStream = new FileInputStream (file); ServletOutputStream outputStream = response.getOutputStream (); байт B [] = новый байт [1024]; int n; while ((n = inputstream.read (b))! = -1) {outputstream.write (b, 0, n); } outputstream.close (); inputstream.close (); } else {request.setattribute ("result", "файл не существует! Скачать не удастся!"); request.getRequestDispatcher ("/fildeop.jsp"). }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.