Я планирую разработать веб-приложение в Java. Я хочу, чтобы эти thing- Сначала мне нужно создать папку на рабочем столе и внутри этой папки, предположим, я создаю еще 5 папок с именем A, B, C, D, E. Теперь я хочу, если я добавлю какой-либо текст или изображение документ в папке A. тогда только пользователь, введя имя пользователя A и пароль (некоторый пароль), может получить доступ к этому конкретному файлу. и то же самое с другими папками. я имею в виду, если admin создаст 5 пользователей с именами A, B, C, D, E. и каждый пользователь сможет получить доступ к ним и загрузить их.
и если администратор помещает некоторый новый файл в папку в A, то при входе пользователя через веб-приложение пользователь может получить доступ только к новым файлам из папки A.
сэр эта вещь, которую я хочу сделать, но как начать, я не знаю. пожалуйста помогите.
Благодарю.
Вам нужно будет указать путь корневой папки в 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
пути к папке, проверьте, если путь существует или нет. Если путь не существует, создайте путь.
При загрузке файла пользователю. После успешного завершения загрузки переместите файл в другое место. Следовательно, в следующий раз, когда пользователь войдет в систему, он увидит только новые документы.
Попробуй это. Вы просто отправляете папку, которую хотите скачать, и имя файла. если вы можете получить путь от сеанса, это даст вам более безопасный идентификатор входа для пользователя, которого вы его создали. если вы загружаете новые данные, вы удаляете папку и создаете новое. В это время у вас есть только один последний файл 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();