반응형
"'블럽'을 구성하지 못했습니다.파일을 다운로드할 때 제공된 값을 시퀀스 "로 변환할 수 없습니다.
ajax/jquery(알고 있습니다...)를 사용하여 PDF 파일을 다운로드하여 저장하려고 합니다.
다음은 서버 측면에 있는 내용입니다.
public HttpResponseMessage GetPdf()
{
var pdf = generatePdfByteArray(); // byte[]
var result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new ByteArrayContent(pdf);
//result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
//{
// FileName = "blah.pdf"
//};
// tried with and without content disposition.. shouldn't matter, i think?
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return result;
}
여기는 클라이언트 측입니다.
let ajaxOptions = {
url: '/url',
type: "GET",
accepts: "application/pdf",
success: (data) => {
let blob = new Blob(data, {
type: "application/pdf"
}); // <-- this fails
// stuff...
}
};
$.ajax(ajaxOptions);
이게 뭐가 문제인지 짐작 가는 거라도?
첫 번째 매개 변수는 시퀀스여야 합니다.
따라서 이 방법은 작동하지 않습니다.
let blob = new Blob(data, {
type: "application/pdf"
});
하지만 이것은 다음과 같습니다.
let blob = new Blob([data], {
type: "application/pdf"
});
이것이 바로 제가 하게 된 것입니다.
public HttpResponseMessage GetPdf()
{
var pdf = generatePdfByteArray();
var result = Request.CreateResponse(HttpStatusCode.OK);
var dataStream = new MemoryStream(pdf);
result.Content = new StreamContent(dataStream);
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "file.pdf"
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return result;
}
언급URL : https://stackoverflow.com/questions/55130927/failed-to-construct-blob-the-provided-value-cannot-be-converted-to-a-sequenc
반응형
'programing' 카테고리의 다른 글
SQL 개발자의 "바인딩 입력" 대화 상자에서 날짜 변수를 사용하는 방법은 무엇입니까? (0) | 2023.08.29 |
---|---|
jQuery: 외부 JS가 페이지 하단에 있는 경우 document.ready를 사용하는 이유는 무엇입니까? (0) | 2023.08.29 |
RedisCacheManager가 keyspace_misses를 업데이트하지 않음 (0) | 2023.08.29 |
Ubuntu 20.04에서 MariaDB 프로비저닝 (0) | 2023.08.29 |
requests.get()이 반환되지 않는 이유는 무엇입니까?requests.get()에서 사용하는 기본 시간 제한은 무엇입니까? (0) | 2023.08.29 |