Commit 5a0ee948 by Patryk Czarnik

PhotoUtil jako static

parent b02791d3
...@@ -5,12 +5,10 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -5,12 +5,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import sklep.model.Product; import sklep.model.Product;
import sklep.repository.ProductRepository; import sklep.repository.ProductRepository;
import sklep.util.PhotoUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -114,4 +112,9 @@ public class ProductController { ...@@ -114,4 +112,9 @@ public class ProductController {
return "wyszukiwarka2"; return "wyszukiwarka2";
} }
@GetMapping(path="/{id}/photo", produces="image/jpeg")
@ResponseBody
public byte[] getPhoto(@PathVariable("id") Integer productId) {
return PhotoUtil.readBytes(productId);
}
} }
package sklep.util;
import org.springframework.http.HttpStatusCode;
import org.springframework.web.server.ResponseStatusException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
public class PhotoUtil {
private static final String EXT = ".jpg";
public static File getFile(int productId) {
Path path = getPath(productId);
File file = path.toFile();
if(file.exists()) {
return file;
} else {
throw new ResponseStatusException(HttpStatusCode.valueOf(404), "Brak zdjęcia nr " + productId);
}
}
public static byte[] readBytes(int productId) {
Path path = getPath(productId);
try {
return Files.readAllBytes(path);
} catch (IOException e) {
throw new ResponseStatusException(HttpStatusCode.valueOf(404), "Brak zdjęcia nr " + productId);
}
}
public static void writeStream(int productId, InputStream inputStream) {
try {
Path path = getPath(productId);
Files.copy(inputStream, path, StandardCopyOption.REPLACE_EXISTING);
} catch (Exception e) {
// wypisujemy błąd, ale metoda kończy się normalnie
e.printStackTrace();
}
}
private static Path getPath(int productId) {
//String dir = DBSettings.load().getProperty("photo_dir");
String dir = "/home/patryk/sklep/foto";
String fileName = productId + EXT;
return Paths.get(dir, fileName);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment