编程语言
首页 > 编程语言> > javascript – fine-uploader – 如何与其他输入字段结合使用?

javascript – fine-uploader – 如何与其他输入字段结合使用?

作者:互联网

我想在一个典型的形式中使用FineUploader:

<form enctype="multipart/form-data" method="post"">
    <input name="fileupload" type="file" ">
    <input type="text" name="title" size="45" maxlength="100">
    <textarea name="description" cols="40" rows="8"></textarea>
    <input type="hidden" name="op" value="Add">
<input type="submit" value="Upload">

所以我实际上想要主要替换< input name =“fileupload”type =“file”“>部分.

不幸的是我不熟悉JavaScript和jQuery jet,也不知道如何做到这一点.
我找不到任何示例代码,其中FineUploader与要发送的其他数据一起使用.

我将不胜感激任何帮助!

谢谢
Kashuda

解决方法:

虽然Fine Uploader不需要jQuery(或其他任何库),但它确实有一个可选的jQuery plug-in.如果你不反对使用jQuery,我建议你使用jQuery插件,因为jQuery让生活更轻松.

有两种方法可以抚养这只猫.在任何一种情况下,公式大致相同.也就是说,让Fine Uploader处理文件,为每个提交的文件即时创建输入元素,然后在Fine Uploader将关联文件发送到服务器之前将这些输入的值传递回Fine Uploader.

选项#1 – FineUploader模式(使用预建UI)

使用FineUploader mode

<div id="myFineUploaderContainer"></div>
<button id="uploadSelectedFiles">Upload Selected Files</button>

$('#myFineUploaderContainer').fineUploader({
   request: {
      endpoint: '/my/upload/endpoint'
   },
   autoUpload: false
})
   .on('submitted', function(event, id, name) {
      var fileItemContainer = $(this).fineUploader('getItemByFileId', id);

      $(fileItemContainer)
         .prepend('<input type="text" name="name">')
         .append('<input type="text" name="description">');
   })
   .on('upload', function(event, id, name) {
      var fileItemContainer = $(this).fineUploader('getItemByFileId', id),
          enteredName = $(fileItemContainer).find('INPUT[name="name"]').val(),
          enteredDescr = $(fileItemContainer).find('INPUT[namme="description"]').val();

      $(this).fineUploader('setParams', {name: enteredName, description: enteredDescr}, id);
   });

$('#uploadSelectedFiles').click(function() {
   $('#myFineUploaderContainer').fineUploader('uploadStoredFiles');
});

您可能需要添加上述代码以满足您的需求,并在适当的时候提供CSS,但这是正确方向的开始.在上面,您正在等待Fine Uploader在将列表项添加到表示所选文件的DOM时回拨给您.当您收到该回调时,您将在列表项的开头添加一个文本输入元素(对于用户提供的名称),在列表项的末尾添加另一个元素(对于用户提供的描述.然后,就在之前Fine Uploader将文件发送到您的服务器,它会调用您的“upload”事件处理程序,您可以在其中读取输入元素的值并将它们提供给Fine Uploader,通过文件ID将它们与文件相关联.Fine Uploader将包含此信息与多部分编码的POST请求中的文件一起发送到您的服务器.

点击处理程序将通知Fine Uploader将文件发送到您的服务器.您的用户在选择所有文件并在适当时填写输入字段后将单击此按钮.通常,Fine Uploader在选择文件后立即将文件发送到服务器,但可以通过切换autoUpload选项来更改.根据您的情况,关闭自动上传是最有意义的.

使用FineUploader模式意味着您不必过多担心用户界面,因为大多数操作都是为您完成的,并且您可以使用它.删除功能,以及进度条和其他UI好东西免费.

选项#2 – FineUploaderBasic模式(构建自己的UI)

您的第二选择是使用FineUploaderBasic mode.这使您可以最大程度地控制您的UI,但它需要最多的工作,因为您需要完全创建自己的UI.这意味着您需要使用大多数callbacks来构建您的UI并使其与Fine Uploader的内部状态和相关文件保持同步.

例如,如果你想要进度条,你需要自己渲染它们并根据定期通过Fine Uploader调用的onProgress回调处理程序传递给你的信息来更新它们.所有这些都很好,如果您对javascript,HTML和CSS非常熟悉,在某些情况下可能更受欢迎.但是,如果你不是,你可能想尝试坚持使用FineUploader模式.

FineUploaderBasic模式不包括开箱即用的拖放支持,但如果您愿意,可以轻松集成Fine Uploader’s standalone File Drag & Drop module.

标签:javascript,post,input,fine-uploader
来源: https://codeday.me/bug/20191004/1854420.html