Как загрузить определенный файл папки рабочего стола на сервер в Java

1

Я планирую разработать веб-приложение в Java. Я хочу, чтобы эти thing- Сначала мне нужно создать папку на рабочем столе и внутри этой папки, предположим, я создаю еще 5 папок с именем A, B, C, D, E. Теперь я хочу, если я добавлю какой-либо текст или изображение документ в папке A. тогда только пользователь, введя имя пользователя A и пароль (некоторый пароль), может получить доступ к этому конкретному файлу. и то же самое с другими папками. я имею в виду, если admin создаст 5 пользователей с именами A, B, C, D, E. и каждый пользователь сможет получить доступ к ним и загрузить их.

и если администратор помещает некоторый новый файл в папку в A, то при входе пользователя через веб-приложение пользователь может получить доступ только к новым файлам из папки A.

сэр эта вещь, которую я хочу сделать, но как начать, я не знаю. пожалуйста помогите.

Благодарю.

Теги:
jsp
servlets

2 ответа

0
Лучший ответ

Вам нужно будет указать путь корневой папки в web.xml, чтобы ваш сервлет мог получить к нему доступ. Папка должна находиться вне установочной папки сервера

<servlet>
   <servlet-name>CreateFolder</servlet-name>
   <servlet-class>pckg.CreateFolder</servlet-class>
</servlet>

<context-param>
        <param-name>ParentFolder</param-name>
        <param-value>/z/y/x/users</param-value>
</context-param>

<context-param>
        <param-name>FileName</param-name>
        <param-value>xyz.png</param-value>
</context-param>

Servlet CreateFolder: -

private String userFolder;

public void init(ServletConfig config) {
    userFolder= getServletContext().getInitParameter("ParentFolder");
}

public doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException){

     String userName = request.getParameter("UserName");
     String location=""


          if(userName != null){
              location +="/"+userName;
               if (!location .exists()) {
                 location .mkdirs(); //If does not exists then create folder
                }
       }

 }

UploadFile Servlet: -

private String userFolder;
private String fileName;
public void init(ServletConfig config) {
    userFolder= getServletContext().getInitParameter("ParentFolder");
    fileName= getServletContext().getInitParameter("FileName");
}

public doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException){

     String userName = request.getParameter("UserName");
     String location=""


          if(userName != null){
              location +="/"+userName;
               if (!location .exists()) {
                   UploadeFile(location );
                }
       }

 }


 private void UploadeFile(String location ){

    String file = location+"/"+fileName;
    //Code to upload the file

    MoveFile(file);//Move to different location
  }

Сначала получите UserName после правильной проверки. Прочитайте путь к папке из web.xml. Добавление в UserName пути к папке, проверьте, если путь существует или нет. Если путь не существует, создайте путь.

При загрузке файла пользователю. После успешного завершения загрузки переместите файл в другое место. Следовательно, в следующий раз, когда пользователь войдет в систему, он увидит только новые документы.

0

Попробуй это. Вы просто отправляете папку, которую хотите скачать, и имя файла. если вы можете получить путь от сеанса, это даст вам более безопасный идентификатор входа для пользователя, которого вы его создали. если вы загружаете новые данные, вы удаляете папку и создаете новое. В это время у вас есть только один последний файл data.may, я думаю, что его помощь для вас

        response.setContentType("image/jpeg");       
        String path = request.getParameter("folder");
        String name = request.getParameter("filename");
        /* TODO output your page here. You may use following sample code. */
        String filepath = "Your path" + path + "/" + name, filename = name;
        ServletOutputStream out = response.getOutputStream();
        FileInputStream in = new FileInputStream(filepath);
        response.addHeader("content-disposition",
                "attachment; filename=" + filename);
        int octet;
        while ((octet = in.read()) != -1) {
            out.write(octet);
        }
        in.close();
        out.close();
  • 0
    TNX для вашего ответа. но только я должен получить доступ к вновь добавленному файлу без какого-либо удаления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню