django 파일 업로드 파일이 일치하지 않습니다.

1608 단어 django서류업로드
간단한django 업로드의 예를 썼는데 업로드된 파일과 원본 파일이 조금 다르다는 것을 발견했다. 열 때'파일 손상'같은 것을 알렸고 mp3 파일은 잡음으로 표현되었다.
기본 코드는 다음과 같습니다.
템플릿 html
<html>
	<body>
		<form action="#" method="post" enctype="multipart/form-data">
			{% csrf_token %}
			title: <input name="title" /><br/>
			file:  <input name="ff" type="file" />
			<div><input type="submit" name="post"></div>
		</form>
	</body>
</html>

처리 코드
def handle_upfile(files):
	# print 'file name is', files['name']

	storefile = open(files.name, 'w')
	for chunk in files.chunks():
		storefile.write(chunk)
	storefile.close()

@csrf_protect
def upload(request):
	if request.method == 'POST':
		# form = upfileform.UploadForm(request.POST, request.FILES)
		print 'check if is_valid'

		utils.handle_upfile(request.FILES['ff'])
		return HttpResponseRedirect(reverse('fage.views.detail'))
	else:
		form = upfileform.UploadForm()

	return render(request, 'fage/upload.html', {'form': form})

그래서django 문서를 보니, 업로드 파일을 저장하는 열기 모드가 다른 미세한 차이를 발견하였다.
storefile = open(files.name, 'w')
바꾸다
storefile = open(files.name, 'wb+')
문제 해결
결론: 파일 업로드는 2진법으로 전달되기 때문에 저장할 때 2진법으로 저장하지 않으면 손실이 발생할 수 있다

좋은 웹페이지 즐겨찾기