어제부터 다른보기에서 특정보기의 인코딩 된 base64 이미지를 어떻게 사용할 수 있는지 이해하려고합니다.Python 플라스크 ajax 이미지 가져 오기 - 마지막 EDIT가 문제입니다.
원본 이미지 인 form.company_logo_image_path.data
을 크기를 조정 한 새 이미지로 바꿔야합니다. 새 크기가 조정 된 이미지는 AJAX를 통해 새로운보기로 전송됩니다.
내 AJAX는 :
@app.route('/profil/unternehmen-bearbeiten/resize-image', methods=["POST"])
def resize_image():
data_url = request.values['a']
content = data_url.split(';')[1]
image_encoded = content.split(',')[1]
body = base64.decodestring(image_encoded.encode('utf-8'))
return body
내가의 폴더에 이미지를 저장하여 테스트 :
var dataurl = canvas.toDataURL("image/png");
$.ajax({
type: "POST",
url: "/profil/unternehmen-bearbeiten/resize-image",
data:{
a: dataurl
}
}).done(function() {
console.log('sent');
});
나는 이미지가
body
변수에 디코딩 저장되어 새로운 뷰를 생성 내 로컬 컴퓨터와 그것을 작동 그래서 본문 변수가 정확하게 크기가 조정 된 이미지를 저장합니다.
지금 나는 그것이 AWS3에 업로드됩니다 타보기로 전송이 이미지를 필요로하고 내가 form.company_logo_image_path.data
대신이 이미지를 사용합니다 :
@app.route('/profil/unternehmen-bearbeiten', methods=["GET", "POST"])
@login_required
@check_confirmed
def edit_company():
the_company = Company.query.filter_by(users_id=current_user.id).first()
form = EditCompanyForm(obj=the_company)
used_file = the_company.company_logo_image_path
if form.validate_on_submit():
form.populate_obj(the_company)
imagedata = resize_image()
print "The", imagedata
if form.company_logo_image_path.data:
upload_image_to_aws('baubedarf', "userimages/", form.company_logo_image_path, the_company,'company_logo_image_path', the_company.company_name)
# ...
여기서 문제는 내가
Bad Request
사이트의 경우를 얻을 수있다
첫 번째보기에서 resize_image
함수의 결과에 액세스하려고합니다. 새 이미지에 어떻게 액세스합니까? 여기 내 진행 나의 오래된 질문
어제부터이 문제에 일하고 그것이 내가 지금까지했던 가장 큰 문제입니다 : Old question with my progress and tries
편집
그것을 내가 시도한 것이 중요하지 않으며, "/profil/unternehmen-bearbeiten"
으로 전송하면 잘못된 요청 오류가 발생합니다.
데이터를 요청 a
어디서나 잘못된 요청 결과 :
try:
print request.values['a']
except Exception as e:
print "error", e
여기에서 예외가
는 또한 자체가 잘못된 요청 결과 캔버스를 요청하는 잘못된 요청, 브라우저 나던에서 콘솔입니다 내가 사용할 수있는 유용한 것을 말해 준다. 마지막으로 나는 심각한했다try:
print request.form['uploading_canvas']
except Exception as e:
print "error 1", e
편집 : 이클립스의 콘솔로 그 같은, 그것은 내가에 보내려고 경로에서 400 잘못된 요청을 얻는다 진행! 데이터를 if form.validate_on_submit():
에 요청하려고했습니다. 이제 코드를 if form.validate_on_submit():
외부에 넣었습니다. 이제 데이터를 요청할 수 있습니다. 문제가 계속 발생하지만 여기에서 계속 작업 할 수 있습니다!
if request.method == 'POST':
print "post"
file_data = request.values['a']
imagedata = resize_image(file_data)
print "The", type(imagedata)
if form.validate_on_submit():
# ...
여기에 잘못된 요청이 다시 접수되고 있습니다. 그러나 지금은 왜 그런지 이해합니다. form.validate_on_submit():
자체도 POST 요청이므로 올바른 if 조건이 필요하며 작동 할 것입니다 (추측).
기본적으로 문제가 : 내 아약스 요청 및 I 모두 POST
요청입니다을 보내고 경로의 form.validate_on_submit():
내가 너무 자주 잘못된 요청을 얻고, 그 이유는 충돌이있다. 사용자 지정 양식 확인란을 만들려고했습니다. 코드와 다른 if 조건을 옮기려고했습니다. 나는 그것을 얻지 못한다.
내 최근의 시도는 :
"""
if form.company_check_it.data == True:
print "post 1"
file_data = request.values['a']
imagedata = resize_image(file_data)
print "The", type(imagedata)
else:
print "post 3"
"""
"""
if request.method == 'POST':
print "post"
file_data = request.values['a']
imagedata = resize_image(file_data)
print "The", type(imagedata)
"""
if form.validate_on_submit():
print "post 2"
"""
if form.company_check_it.data == True:
print "post 1"
file_data = request.values['a']
imagedata = resize_image(file_data)
print "The", type(imagedata)
else:
print "post 3"
"""
if request.method == 'POST':
print "post"
file_data = request.values['a']
imagedata = resize_image(file_data)
print "The", type(imagedata)
form.populate_obj(the_company)
"""
data_url = request.values['a']
print data_url
content = data_url.split(';')[1]
image_encoded = content.split(',')[1]
body = base64.decodestring(image_encoded.encode('utf-8'))
print type(body)
"""
당신은 여기에 코드 조각에 출력을 게시 할 수 index.html을 /? –
'print, "imagedata가 출력합니까? –
인쇄 "The", imagedata는 아무것도 제공하지 않습니다. 내가 추측하기 전에 실패했습니다. 잘못된 요청 – Roman