上传文件+如何获取下拉框的信息,卡住了,求助
发布于 10 年前 作者 inosqlorg 4621 次浏览 最后一次编辑是 8 年前 来自 问答

需求是选择相册,然后上传图片到相册。 app.js,使用multer

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true}));

页面

<form id="form" method="post" action="/upload" >
         <p>
            <span >选择相册:</span>
            <select name="album">
              <%
              var albumValue = albums[0]._id;
              if (typeof(album) !== 'undefined') {
                albumValue = album;
              }
              albums.forEach(function (album) {
              console.log(album);
                var albumId = album._id;
                var albumName = album.name;
                %>
                <option value="<%=albumId%>" <%= albumValue === albumId ? 'selected': '' %>><%=albumName%></option>

              <%});%>
            </select>
    	</p> 
	<div id="uploader">
		<p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p>
	</div>
	<br />
</form>

后端:

exports.upload = function (req, res){
   console.log("req.body:"+JSON.stringify(req.body));
};

log: POST /upload - - ms - - req.body:{“name”:“Chrysanthemum.jpg”,“chunk”:“0”,“chunks”:“1”}

问题是后端如何获取下拉框选中的album的信息呢?

6 回复

有人了解么?

你前端先获取到下拉框的数据,然后通过js提交呗。

@shinygang 要多一次提交?不能和上传文件的合并起来?

@inosqlorg 你选择了文件,然后点提交呗,或者你那个选择文件框改变事件调用js提交

@shinygang 文件提交只有文件的信息的。

@inosqlorg 用formdata装你要提交的数据,包括文件信息和其他数据。 例如: var data = new FormData(); var files = $("#thumbnail")[0].files; if (files) { data.append(“thumbnail”, files[0]); } data.append(“startTime”, $("#txtStart").val()); data.append(“endTime”, $("#txtEnd").val());

回到顶部