提问人:SUIN ROH 提问时间:10/21/2023 最后编辑:SUIN ROH 更新时间:10/21/2023 访问量:22
Django 处理大文件时管道断裂错误
Django broken pipe error when handling large file
问:
使用 Django 框架开发的服务器托管在本地环境中,在处理大文件的过程中发生管道断裂错误。
目前的问题是下面的代码,即通过单独的视图将 DICOM 文件更改为 png 扩展名来处理 DICOM 文件。正常情况下没有问题,但在处理大约 15MB 的文件时会出现断管错误。
# javascript code for request file data in html template
function loadImages(images, fileType, index) {
event.preventDefault();
if (index < images.length) {
var image = images[index];
var fileName = image.image_url.split('/').pop();
var imageData = {
fileName: fileName,
};
imageInfoArray.push(imageData);
var img = new Image();
img.onload = function() {
var filePreviewHTML = `
<li class="add-image-${index}">
<a href="javascript:void(0)" class="img-wrap" data-id="${index}">
<img src="${(fileName.endsWith('.DCM')) ? '/dicom/' + fileName : image.image_url}" alt="ask-file-img"/>
<button class="remove-file" onclick="disableImage('${image.image_url}')"><i class="material-icons">close</i></button>
</a>
<p class="file-name">${fileName}</p>
</li>
`;
var filePreview = $('.file-preview[data-file="' + fileType + '"]');
filePreview.append(filePreviewHTML);
loadImages(images, fileType, index + 1);
}
img.src = (fileName.endsWith('.DCM')) ? '/dicom/' + fileName : image.image_url;
}
// view code for handling DICOM file
def show_dicom(request, file_path):
file_path = os.path.join(settings.MEDIA_ROOT, "xray_images", file_path)
dicom = pydicom.dcmread(file_path)
image_array = apply_voi_lut(dicom.pixel_array, dicom)
image_array_2d = image_array[0] if len(image_array.shape) > 2 else image_array
norm = Normalize(vmin=image_array_2d.min(), vmax=image_array_2d.max())
image_array_2d = norm(image_array_2d)
plt.imshow(image_array_2d, cmap=plt.cm.bone)
plt.axis('off')
buffer = BytesIO()
plt.savefig(buffer, format='png', bbox_inches='tight', pad_inches=0)
buffer.seek(0)
plt.close()
return HttpResponse(buffer.getvalue(), content_type='image/png')
在处理大约 15MB 大的文件时,会出现以下错误。
[20/Oct/2023 14:10:58,643] - Broken pipe from ('127.0.0.1', 50065)
有人可以帮我吗?
我以为问题发生了,因为文件太大而无法发送。 所以我试图调整文件大小。
- 调整文件大小
- 压缩文件
答: 暂无答案
评论