Details
-
Suggestion
-
Resolution: Fixed
Description
Hi guys. Please add posibility to import attachments or you may use my code
private void createAttachments(PreparedStatement attachPrepStatement, int bug_id, GenericValue issue) throws Exception
{
ResultSet resultSet = null;
try
{
attachPrepStatement.clearParameters();
attachPrepStatement.setInt(1, bug_id);
resultSet = attachPrepStatement.executeQuery();
while (resultSet.next())
{
String fileName = resultSet.getString("filename");
if (fileName.lastIndexOf('
') > -1)
if (fileName.lastIndexOf('/') > -1)
{ fileName = fileName.substring(fileName.lastIndexOf('/') + 1); }final Blob fileData = resultSet.getBlob("thedata");
Map fields = new HashMap();
fields.put("issue", issue.getLong("id"));
fields.put("author", getUser(resultSet.getInt("submitter_id")).getName());
fields.put("mimetype", resultSet.getString("mimetype"));
fields.put("filename", fileName);
fields.put("filesize", new Long(fileData.length()));
fields.put("created", resultSet.getTimestamp("creation_ts"));
GenericValue attachment = EntityUtils.createValue("FileAttachment", fields);
issue.set("updated", UtilDateTime.nowTimestamp());
CoreFactory.getGenericDelegator().storeAll(UtilMisc.toList(issue));
ManagerFactory.getCacheManager().flush(CacheManager.ISSUE_CACHE, issue);
File realAttachFile = new File(AttachmentUtils.getAttachmentDirectory(issue), attachment.getLong("id") + "_" + fileName);
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(realAttachFile));
FileUtils.copy(new BufferedInputStream(fileData.getBinaryStream()), out);
}
}
catch (SQLException e)
finally
{ closeResultSet(resultSet); }}
And in method createIssues() add:
1. attachPrepStatement = connection.prepareStatement("SELECT * FROM attachments WHERE bug_id = ? ORDER BY attach_id ASC");
2. createAttachments(attachPrepStatement, resultSet.getInt("bug_id"), issue);
Attachments
Issue Links
- duplicates
-
JRASERVER-1547 Bugzilla import mangles non-ascii
- Closed