Я пытаюсь загрузить файлы в базу данных mysql.Какой тип java соответствует <input type = "file">?
Вот моя форма:
<!DOCTYPE html>
<html xmlns:th="http://www.themyleaf.org">
<head>
<meta charset="ISO-8859-1" />
<title>User</title>
</head>
<body>
<h1>Please enter the following to upload the file.</h1>
<form action="#" th:action="@{/uploadToDB}" th:object="${doc}" method="post">
<p>Author: <input type="text" th:field="*{author}" /></p>
<p>Publication date: <input type="text" th:field="*{pubDate}" /></p>
<p>Title: <input type="text" th:field="*{title}" /></p>
<p>Editor: <input type="text" th:field="*{editor}" /></p>
<p>Content type: <input type="text" th:field="*{contentType}" /></p>
<p>Size: <input type="text" th:field="*{size}" /></p>
<p>Content: <input name="userfile" type="file" id="userfile" th:field="*{content}"></input></p>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"></input>
<p><input type="submit" value="Upload" /> <input type="reset" value="Reset" /></p>
</form>
</body>
</html>
Эти значения затем установить на мой боб Document:
@SuppressWarnings("serial")
@Component
public class Document implements Serializable {
private String author;
private String pubDate;
private String title;
private String uploadDate;
private String editor;
private String id;
private String contentType;
private String size;
private Blob content;
//setters and getters
Теперь проблема я столкнулся, я не знаю, тип подразумеваемой <input type="file">
. Он генерирует ошибку, когда я устанавливаю content
в Blob
, который является типом, который я ищу для вставки в мою базу данных.
Я ранее использовал String
, но он не кажется хорошим. Я могу вставить его в мою базу данных. Но я не могу извлечь файл из своей базы данных, чтобы отобразить его или загрузить после него.
Буду признателен за любую помощь!
Попробуйте байт []. После того, как вы прочитаете содержимое в String, вы можете делать то, что хотите. – duffymo
Спасибо. Попробуем это сделать. * – Chuck
Хороший вызов, я могу напрямую использовать 'byte []' и делать это 'PreparedStatement ps = connect.prepareStatement (sql); ps.setBytes (8, d.getContentFromForm()); '. Я думаю, это решит мои проблемы, когда я попытаюсь восстановить файл. Благодарю. – Chuck