首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多部分/表单-数据导致400服务器错误使用烧瓶,wfastcgi,IIS 6。

使用多部分/表单-数据导致400服务器错误使用烧瓶,wfastcgi,IIS 6。
EN

Stack Overflow用户
提问于 2017-10-16 02:02:42
回答 1查看 339关注 0票数 0

我一直在寻找这个问题的答案,而我的智慧已到了尽头。

我正在使用IIS 6在Windows 2008上运行一个小型web服务。web服务是用Python编写的,使用Flask编写,我使用WSGI在IIS和Flask之间进行接口。它一直很好,直到我决定我想允许上传图片。一旦我将enctype="multipart/form-data"放入<form>标记中,任何提交表单的尝试都会导致400个服务器错误:

错误的请求 浏览器(或代理)发送此服务器无法理解的请求。

我在互联网上搜索过,以前似乎没有人遇到过我的问题。所讨论的表格看起来就像

代码语言:javascript
复制
<form method="POST" action="/log?case={{ CASE.id }}" enctype="multipart/form-data">
    <input type="hidden" name="case_id" value="{{ CASE.id }}">
    <textarea rows="3" cols="75" name="comment"></textarea><br>
    Case Status:
    {% if CASE.status=="Closed" %}
        <select name="status">
            <option value="Parked">Parked</option>
            <option value="Closed" SELECTED>Closed</option>
            <option value="Open" >Open</option>
        </select>
    {% elif CASE.status=="Open" %}
        <select name="status">
            <option value="Parked">Parked</option>
            <option value="Closed" >Closed</option>
            <option value="Open" SELECTED>Open</option>
       </select>
    {% elif CASE.status=="Parked" %}
       <select name="status">
           <option value="Parked" SELECTED>Parked</option>
           <option value="Closed">Closed</option>
           <option value="Open">Open</option>
       </select>
    {% else %}
       <select name="status">
           <option value="Parked">Parked</option>
           <option value="Closed">Closed</option>
           <option value="Open" SELECTED>Open</option>
       </select>
    {% endif %}
    <br>
    Computer Location:
    {% if CASE.location=="Owner" %}
        <select name="location">
            <option value="Storage" >Storage</option>
            <option value="Owner" SELECTED >Owner</option>
        </select>
    {% elif CASE.location=="Storage" %}
        <select name="location">
            <option value="Owner"  >Owner</option>
            <option value="Storage" SELECTED>Storage</option>
        </select>
    {% endif %}
    <br>
    <input type="file", name="image">
    <br />
    <input type="submit" name="submit" value="Submit">
</form>

请求处理程序看起来像

代码语言:javascript
复制
def handleCaseComment(form, files, case_id):
    # def handleCaseComment(form, case_id):
    # create SQLAlchemy session
    sess = db.session

    # get case comment information
    comment = form['comment']
    status = form['status']
    location = form['location']
    image = form['image']
    if image == "":
        image = None
    username = session['username']
    technician = Technician.query.filter_by(username=username).first()
    case = Support_Request.query.filter_by(id=case_id).first()

    # create the case comment
    caseComment = Case_Comment(author=technician,
                               content=comment,
                               comp_loc=location,
                               comp_status=status,
                               case=case,
                               image=image)

    sess.add(caseComment)
    sess.commit()

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-10-25 02:09:55

简单的旧javascript,但这里是一个功能HTTP请求从javascript到烧瓶。刚刚测试过了。我使用它上传图像,然后将这些图像的缩略图上传回浏览器。

代码语言:javascript
复制
document.getElementById(configureFileDrops[0]).addEventListener('drop',function(event){
    files = event.dataTransfer.files;
    form = new FormData();
    form.append("index", "1");
    for (i = 0; i <files.length; i++){
        form.append("file" + String(i), files[i]);
    }
    form.enctype = "multipart/form-data"

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.responseType = 'arraybuffer';

    xmlhttp.onreadystatechange = function (){
         if (xmlhttp.readyState ===4 && xmlhttp.status === 200) {
              //use response here
         };
    xmlhttp.open("POST", '<insert route>', true);
    xmlhttp.send(form);


},false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46761979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档