Tag: mime types

如何通过Base64编码的图像字符串识别文件类型

我得到一个Base64编码的字符串文件作为图像。 但我认为其内容包含有关文件类型的信息,如png,jpeg等。如何检测? 有没有可以帮助我的图书馆?

为MimeMessage设置Content-Type?

我对mime消息的内容类型有一个困惑。 说我有一个mime消息。 这是一个多部分的消息,身体部位是这样的 Mime身体部分包含纯文本,html文本(像一些粗体字母) 第二个哑体部分包含附件, 第三个mime身体部位包含一个内嵌图像(从身体带cid引用) 当我创建正文部分时,我应该明确设置顶级mime消息的内容类型,然后是每个正文部分吗? 如果是,那么它们在上面的例子中应该是什么? 对于html建议使用multipart/alternative ,对附件建议使用multipart/mixed ,建议使用multipart/related进行内联。 我正在使用所有这些,那么什么应该是内容类型的完整消息和不同的身体部位? 仅仅是为了获取信息,我试图复制上面的场景,我没有为整体MimeMessage和身体部位设置内容类型。 但是我仍然得到了预期的东西,如纯文本,正文中的大胆字母,附件,右边詹姆斯的内嵌图像 詹姆斯如何在不设置内容类型的情况下解释哑剧信息和身体部位,以及如何以正确的方式展示它们? 代码供参考 MimeMessage msg = new MimeMessage(mailSession); MimeMultipart mpart = new MimeMultipart(); MimeBodyPart bp = new MimeBodyPart(); bp.setText(“plain text and html text likeTest”, CHARSET_UTF_8, MESSAGE_HTML_CONTENT_TYPE); // add message body mpart.addBodyPart(bp); // adding attachment MimeBodyPart bodyPart = new MimeBodyPart(); bodyPart.setFileName(“WordFile1”); file = […]

如何使用MimeMultipart的JavaMail覆盖默认的唯一边界字符串并创建自己的边界?

我有一个我使用的网络应用程序,它需要一个特定的边界字符串(“公司mime边界”)。 当我这样做时,我没有找到覆盖MimeMultipart默认行为的方法 Multipart mp = new MimeMultipart(); 一个唯一的边界字符串总是由构造函数创建,我想覆盖此行为以拥有自己的边界字符串,但由于我没有找到任何API,因此无法执行此操作。 即使我在内容类型中设置它,它也不起作用并且创建一个唯一的边界字符串,因为MimeMultipart正在创建一个默认的边界字符串。 mimeMsg.setHeader(“Content-Type”,”multipart/mixed;boundary=”company mime boundary”); 任何人都可以建议/帮助我。 如何覆盖此默认行为?

估计文件是否为MIME类型

应该检查此方法是否为MIME类型。 为了实现这个目标,我使用方法probeContentType() 。 然而,也许是另一种决定相同问题的方法。 哪些是其他选择(如果有的话)? 码: class ProbeContentTypeCheker implements Checker { @Override public boolean check(File fileCheck) { try { Path filePath = FileSystems.getDefault().getPath( fileCheck.getAbsolutePath()); if ((Files.probeContentType(filePath) != null)) { return true; } } catch (IOException e) { e.printStackTrace(); } return false; } } 题: 是否有其他替代方法可以检查文件中的MIME类型?

在数据库中转换嵌入的图片

我有一个’小’的问题。 在数据库文档中包含richtextfield。 richtextfield包含某个联系人的个人资料图片。 问题是这个内容没有保存为mime,因此我无法计算图像的url。 我正在使用pojo从人员配置文件中检索数据,并在我的xpage控件中使用它来显示其内容。 我需要构建一个转换代理,它接受richtextitem的内容并将其转换为mime,以便能够计算类似于url的内容 http://sofzh.miximages.com/java/tln(Create mime entity); MIMEEntity mEntity = doc.createMIMEEntity(PictureTest); MIMEHeader cdheader = mEntity.createHeader(Content-Disposition); System.out.println(Set header withfilename picture.gif”); cdheader.setHeaderVal(“attachment;filename=picture.gif”); System.out.println(“Setcontent type header”); MIMEHeader cidheader = mEntity.createHeader(“Content-ID”); cidheader.setHeaderVal(“picture.gif”); System.out.println(“Set content from stream”); mEntity.setContentFromBytes(nStream, “application/gif”, mEntity.ENC_IDENTITY_BINARY); System.out.println(“Save document..”); doc.save(); //s.setConvertMime(true); System.out.println(“Done”); // Clean up if we are done.. //doc.removeItem(fieldName);

使用Selenium在FireFox中设置首选项时出现mime类型问题

这是我几周来一直在努力解决的问题,但似乎找不到可行的解决方案。 在坚果壳中,我的程序进入一个网站并下载一些文件。 当它下载文件时,FireFox总是会显示弹出窗口,询问我要将其保存到的位置。 为了摆脱这个弹出窗口,我创建了一个配置文件首选项。 profile.setPreference(“browser.helperApps.neverAsk.saveToDisk”,”application/zip,application/vnd.ms-excel”); 这个首选项适用于我需要下载的一个zip文件,但它完全被我需要的其他3个Microsoft CSV文件忽略。 我已经尝试了我能想到的每种适用的mime类型,但它们都没有用。 我通过在线程序运行我的文件,该程序应该告诉你文件的mime类型,并且它宣称我测试的文件是application/vnd.ms-excel 。 不幸的是,我从来没有能够使这种类型工作。 我尝试了各种不同的方式来设置配置文件,例如: profile.setPreference(“browser.helperApps.neverAsk.saveToDisk”,”application/zip” + “application/vnd.ms-excel”); 甚至只使用application/vnd.ms-excel而不使用前面的zip类型,仍然没有骰子。 还有另一种方法可以设置这个我每次尝试下载这些文件时没有弹出窗口的地方吗? 更好的是,我的代码有什么问题可以让zip文件工作,但不是Microsoft csv吗?

如何在Jersey中获取上传文件的MIME类型

我在泽西岛有一个标准的上传端点: @POST @Secure @Consumes(“multipart/form-data”) public Response upload( @Context final HttpHeaders hh, @FormDataParam(“fileaaa”) final FormDataContentDisposition disposition, @FormDataParam(“fileaaa”) final InputStream input, 如何获取上传文件的MIME类型? 如果我执行disposition.getType这将获取表单的MIME类型; 在这种情况下, form-data 。 我知道信息在某处; HTTP消息应该是这样的: —————————–7d01ecf406a6 Content-Disposition: form-data; name=”input_text” mytext —————————–7d01ecf406a6 Content-Disposition: form-data; name=”fileaaa”; filename=”C:\Inetpub\wwwroot\Upload\pic.gif” Content-Type: image/gif (binary content) —————————–7d01ecf406a6–

强制浏览器在JAVA中下载docx文件会生成损坏的文档

使用JAVA,我试图强制浏览器下载文件。 这是我目前使用的代码: response.reset(); response.resetBuffer(); response.setContentType(mimeType); response.setHeader(“Content-Disposition”, “attachment; filename=\”” + fileName + “\””); InputStream in = new FileInputStream(file); OutputStream out = response.getOutputStream(); IOUtils.copy(in, out); out.flush(); out.close(); in.close(); response.flushBuffer(); 它工作得很好,但是当强制下载docx文档(MS Office 2007+)时,下载的文件已损坏(至少,这就是MS Office告诉我的)。 如果我尝试直接在存储它们的服务器上打开它,则不会出现该错误,这意味着在下载时(而不是在上载时)问题确实会产生干扰。 根据IANA ,此类文件的MIME类型应为application/vnd.openxmlformats-officedocument.wordprocessingml.document (1) ,但指定MIME类型不能解决问题。 网上有几条曲目 ,但它们都不适用于我。 在ASP.NET似乎有一个解决方案 ,但我没有在JAVA找到相应的解决方案 。 我也尝试使用MIME类型application/vnd.ms-word (2) ,但是下载的文件仍然已损坏。 同意MIME类型application/msword (3) 这里建议的人,以及此论坛上提出的通用MIME类型application/octet-stream (4) 。 然后,对于这四种MIME类型中的每一种,我都尝试将下载文件的名称从myfile.docx为myfile.doc (不再是x ),但问题仍然存在。 那么,如何强制下载未损坏的下载 docx文件? 我的代码是否正确?

使用mimeutil从内容获取Java文件类型无法按预期工作

在我的以下代码中: MimeUtil.registerMimeDetector(“eu.medsea.mimeutil.detector.MagicMimeMimeDetector”); File f = new File (“c:\\temp\\mime\\java.exe”); Collection mimeTypes = MimeUtil.getMimeTypes(“c:\\temp\\mime\\java.exe”); MimeType m = mimeTypes.toArray(new MimeType[mimeTypes.size()])[0]; System.out.println(m); 无论选择何种文件类型,即csv,xls,exe等,输出始终为application / octet-stream。 但根据以下网站: http://www.rgagnon.com/javadetails/java-0487.html 它应该显示为ms-word或ms-excel等。 如何使这项工作? 我想要的只是从文件内容中获取文件类型(而不是使用不太可靠的文件扩展名)。 我正在阅读其他选项,如tika,这需要太多的文件(如20),这对于这个单一的目的来说太多了,而JMimeMagic需要apache-oro,这是一个死的项目因此我也不喜欢这个想法。 所有其他解决方案似乎依赖于文件扩展,如上所述,这似乎不可靠。 谢谢

格式化的cliboard Java

我在尝试找出如何在保存到系统剪贴板时保留Java程序中的文本格式时遇到问题。 它不适用于Microsoft的Wordpad或Lotus Symphony之类的东西。 相反,如果我在Word中创建一个格式化的字符串并将其复制,那么它会在我尝试将其粘贴到的所有试用案例中正常工作。 我不想使用任何外部源,如org.eclipse。*。 以下是我编译的一些链接,可以帮助我指出正确的方向。 我觉得好像我没有使用正确的数据风味? http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html 我发现这个链接谈论了很多关于dataflavors的内容,但是没有说明哪一个用于格式化文本。 我确实理解这可能在每个操作系统上都不一样,我需要检查以确保它在我使用的操作系统上受支持。 http://www.javaworld.com/cgi-bin/mailto/x_java.cgi?pagetosend=/export/home/httpd/javaworld/javaworld/javatips/jw-javatip61.html&pagename=/javaworld/javatips/jw-javatip61。 HTML&PAGEURL = HTTP://www.javaworld.com/javaworld/javatips/jw-javatip61.html&site=jw_core 感谢您在高级方面的所有帮助,我真的很感激! 担 编辑 我目前正在使用以下代码: http : //lists.apple.com/archives/java-dev/2004/Jul/msg00359.html并进行了一些小的更改。 我目前遇到的问题是,我需要以两种不同的格式将数据传输到剪贴板。 “text / rtf”和“text / plain”看到某些程序不支持RTF。 我在剪贴板中使用剪贴板内部的内容。 我可以成功地放置RTF或纯文本,但不能同时放置。 当我这样做时,只添加最后一个。 非常感谢您的帮助! 总之,我不能同时设置具有两种不同数据风格的剪贴板。 import java.awt.datatransfer.*; import java.io.*; public class clipBoard { public static final String RTF_STRING = “{\\rtf1\\ansi\\deff0 {\\fonttbl {\\f0 Courier;}}\r \n{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\nThis line is the default […]