如果上传的文件没有扩展名,我是否必须指定MIME类型?换句话说,是否有默认的通用MIME类型?
即使我将内容类型设置为text/html,它最终也会成为S3上的application/octet-stream.
ByteArrayInputStream contentsAsStream = new ByteArrayInputStream(contentAsBytes);
ObjectMetadata md = new ObjectMetadata();
md.setContentLength(contentAsBytes.length);
md.setContentType("text/html");
s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId, contentsAsStream, md));
Run Code Online (Sandbox Code Playgroud)
但是,如果我将文件命名为最终使用.html
s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId + ".html", contentsAsStream, md));
Run Code Online (Sandbox Code Playgroud)
然后它工作.
我的md对象被忽略了吗?我如何以编程方式绕过这个,因为随着时间的推移,我需要上传数千个文件,因此不能只进入S3 UI并手动修复contentType.
使用response.setContentType("application/octet-stream");而不是response.setContentType("text/csv");设置csv文件的内容类型有什么区别,似乎它们都产生相同的结果。哪种方法更合适?只是好奇。
我有一个将电子邮件发送到列表的例程,如下所示,我已经对其进行了测试。给我的第一封电子邮件很好,但第二封电子邮件的字节数少于实际文件使其损坏无法打开的字节数。我怎样才能使每个电子邮件附件都正确发送而不发送任何 0 字节附件?我通过 ASP.NET C# 网络表单将附件直接发送给收件人,但大多数 PDF 附件都被错误地解码为错误消息。这是页面的主要电子邮件代码:
if (emailIsValid(EmailToSend))
{
string TheSubject = SubjectTxt.Text;
string TheBody = "Dear " + FirstName + ",<br/><br/>" + MessageTxt.Text;
TheBody = TheBody + " EMail Body "
string BodyTxt = TheBody.Replace(Environment.NewLine, "<br />");
MailMessage mailObj = new MailMessage(
"noreply@company.com", EmailToSend, TheSubject, BodyTxt);
SmtpClient SMTPServer = new SmtpClient("unknown.company.com");
string RPT = FromTxt.Text;
mailObj.ReplyToList.Add(RPT);
mailObj.BodyEncoding = System.Text.Encoding.UTF8;
mailObj.IsBodyHtml = true;
string filePath = txtAttachment.PostedFile.FileName;
string filename = Path.GetFileName(filePath);
string ext = Path.GetExtension(filename);
string contenttype = …Run Code Online (Sandbox Code Playgroud)