Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Уникальное имя фотографиям в БД(Spirng MVC и MySQL) / 12 сообщений из 12, страница 1 из 1
02.05.2019, 08:56
    #39809045
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
Я написал проект который хранит изображение в БД(MySQL). Так вот у меня проблема возникла, у меня есть две фотографии (первый.jpeg, второй.jpeg). Так вот они нормально по названию хранятся в базе данных до тех пор пока я не поменяю название фотографии, допустим название первый.jpeg поменяю на второй.jpeg то фотография сходу меняется на первую фотографию, хотя я просто его переименовал должно меняться только название а не фотография. Я хочу использовать UUID, чтобы допустим я добавлю фото и джава сразу же дала ему уникальное имя и хранила с новым именем в БД. Помогите пожалуйста реализовать.


Контроллер
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
package fallen.java.schoolmaven.controller;

import fallen.java.schoolmaven.service.StudentService;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.query.Param;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class AvatarController {

    @Autowired
    private ServletContext servletContext;

    // Constructor based Dependency Injection
    

    

   

 @GetMapping(value = "/avatar")
    public void getAvatar(HttpServletResponse response, @Param("avatar") String avatar) throws IOException {
        if(avatar == null || avatar.isEmpty()) return;
        final String avatarFolder = servletContext.getRealPath("/WEB-INF/images/");
        response.setContentType(MediaType.IMAGE_JPEG_VALUE);
        IOUtils.copy(new FileInputStream(avatarFolder + "/" + avatar), response.getOutputStream());
    }
    
     @RequestMapping(value = "/image", method = RequestMethod.GET)
    public void image(@RequestParam String url, HttpServletResponse response) throws IOException {
        InputStream in = new FileInputStream(url);
        response.setContentType(MediaType.IMAGE_JPEG_VALUE);
        IOUtils.copy(in, response.getOutputStream());
    }
} 



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<title>Home</title>

</head> 
<body>
    <div class="add">
        <br>
    <br>
    <br>
    
    <br>
    <center>
	<h1>${headerMessage}</h1>
	
        <form:form method="POST" action="addStudent" enctype="multipart/form-data">
             <table>

                <tr>
                    <td><label path="Name">Имя</label></td>
                    <td><input type="text" name="name"/></td>
                </tr>
                <tr>
                    <td><label path="Surname">Фамилия</label></td>
                    <td><input type="text" name="surname"/></td>
                </tr>
                <tr>
                    <td><label path="Avatar">Фотография:</label></td>
                    <td>
                        <input type="file" name="avatar"/>
                    </td>
                    
                </tr>
                <tr>
                    <td><input class="btn btn-primary" type="submit" value="Добавить"></td>
                </tr>
            </table>
        </form:form>
</center>
        </div>
</body>
</html>
...
Рейтинг: 0 / 0
02.05.2019, 10:01
    #39809071
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
fallen2019,

Вот здесь я добавил фотки (стивджобс и биллгейтс)
...
Рейтинг: 0 / 0
02.05.2019, 10:01
    #39809072
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
fallen2019,

А вот здесь я просто поменял название фотки "стивджобс" на "биллгейтс" и тут вместе с названием фотка поменялась (не должно быть так)
...
Рейтинг: 0 / 0
02.05.2019, 10:09
    #39809077
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
fallen2019,
Делай ОТЛАДКУ.
По шагам или логами приложения.
...
Рейтинг: 0 / 0
02.05.2019, 10:38
    #39809085
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
Petro123,

У меня все нормально работает без ошибок, просто надо переписать код так чтобы он только изменял название а не саму фотографию
...
Рейтинг: 0 / 0
02.05.2019, 11:25
    #39809113
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
fallen2019,

А покажи как ты создавал табличку в mysql.
...
Рейтинг: 0 / 0
02.05.2019, 11:25
    #39809114
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
fallen2019,
Логируют не для ошибок. Это обязательное умение програамиста. В том числе в JS на F12.
Иначе в раздел работа.
...
Рейтинг: 0 / 0
04.05.2019, 07:55
    #39809620
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
fallen2019Petro123,

У меня все нормально работает без ошибок, просто надо переписать код так чтобы он только изменял название а не саму фотографию
На мой взгляд хранить изображения как картинки на диске плохая идея.
В случае (как у вас) переименования вы получаете большой геморр так как необходимо одновременно переименовывать и имя файла в базе, и ссылку на него. Не забывайте про кеширование, которое будет вам подсовывать старый файл из кеша.

Лучше хранить изображения в базе как блобы.
...
Рейтинг: 0 / 0
04.05.2019, 08:47
    #39809631
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
SQL2008,
Либо никогда не переименовывать файл на диске. Только в табличке.
...
Рейтинг: 0 / 0
04.05.2019, 09:28
    #39809640
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
Зачем название файла вообще менять? Давайте им имена по id, а отображаемое имя храните в отдельном поле.
...
Рейтинг: 0 / 0
04.05.2019, 16:31
    #39809729
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
Hett, мы в топике к этому сейчас подойдем.

К сожалению автор выложил огрызок бесполезного кода. А полезный скрыл.
...
Рейтинг: 0 / 0
05.05.2019, 12:52
    #39809883
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальное имя фотографиям в БД(Spirng MVC и MySQL)
HettЗачем название файла вообще менять? Давайте им имена по id, а отображаемое имя храните в отдельном поле.+100500
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Уникальное имя фотографиям в БД(Spirng MVC и MySQL) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]