PDFファイルをブラウザで表示したい。
解決したいこと
拡張子がPDFを保存できるフォルダを作り、
書類をアップロード。保存されていればリンクを押したら表示できる機能を作っています。
発生している問題・エラー
現在、フォルダを作成し、書類をアップロードするところまではできたのですが、表示の仕方がわかりません。
例)
examlie.pdf
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
【pdf.html】
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>top page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h2>ファイルアップロード</h2>
<form method="post" enctype="multipart/form-data" th:action="@{/upload}" th:object="${form}" >
<input th:field="*{file}" type="file" multiple/>
<input type="submit" value="アップロード"/>
</form>
<ul>
<li>
<a href="C:/Users/Education//Desktop/save/examlie.pdf">examlie.pdf</a>
</li>
</ul>
</body>
</html>
例)
@Controller
public class FileUploadController {
private String getExtension(String filename) {
int dot = filename.lastIndexOf(".");
if (dot > 0) {
return filename.substring(dot).toLowerCase();
}
return "";
}
private String getUploadFileName(String fileName) {
return fileName + "_" +
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")
.format(LocalDateTime.now())
+ getExtension(fileName);
}
private void createDirectory() {
Path path = Paths.get("C:/Users/Education/Desktop/save");
if (!Files.exists(path)) {
try {
Files.createDirectory(path);
} catch (Exception e) {
}
}
}
private void savefile(MultipartFile file) {
String filename = getUploadFileName(file.getOriginalFilename());
Path uploadfile = Paths.get("C:/Users/Education//Desktop/save/" + filename);
try (OutputStream os = Files.newOutputStream(uploadfile, StandardOpenOption.CREATE)) {
byte[] bytes = file.getBytes();
os.write(bytes);
} catch (IOException e) {
}
}
private void savefiles(List<MultipartFile> multipartFiles) {
createDirectory();
for (MultipartFile file : multipartFiles) {
savefile(file);
}
}
@RequestMapping(path = "/", method = RequestMethod.GET)
String uploadview(Model model) {
model.addAttribute("form", new UploadForm());
return "index";
}
@RequestMapping(path = "/upload", method = RequestMethod.POST)
String upload(Model model, UploadForm form) {
if (form.getFile()==null || form.getFile().isEmpty()) {
return "index";
}
savefiles(form.getFile());
return "redirect:/";
}
}
自分で試したこと
html側でリスト形式にし、aタグを使えばでるのかなと思ったのですがそんな簡単なことではなかったです。