一尘不染

单击flow.js上传文件

angularjs

希望有人可以帮助您。

基本上,我们使用ng-flow https://github.com/flowjs/ng-
flow允许拖放以上传项目。我们还在使用MVC 4。

所有人似乎都应该工作,但是,我们希望对此进行自定义,以便

  1. 将项目拖到上载框并存储在范围内(与现在一样)
  2. 在单击按钮之前,不会实际上传项目

到目前为止,我们尝试了什么?:-

在配置中,我们已禁用目标,因此它不会立即上传

.config(['flowFactoryProvider', function (flowFactoryProvider) {
flowFactoryProvider.defaults = {
  target: '',
  permanentErrors: [500, 501],
  maxChunkRetries: 1,
  chunkRetryInterval: 5000,
  simultaneousUploads: 1
};

在实际页面上,我们创建了一个按钮,单击ng会通过flow.files

<input type="button" value="Click Me" ng-click="uploadme($flow.files)">

在控制器中,我们具有函数uploadme,它接受流作为参数。遍历此参数并将每个“文件”发布到上传控制器

$scope.uploadme= function (flows)
{
    angular.forEach(flows, function (flow) {
        var fd = new FormData();
        fd.append("file", flow);
        $http.post("upload", fd, {
            withCredentials: true,
            headers: {'Content-Type': undefined },
            transformRequest: angular.identity
        })
    });

}

MVC控制器,“上传”。被调用,但是,文件始终为空

public ActionResult upload(HttpPostedFileBase file)
    {
        if (file.ContentLength > 0)
        {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);
        }
        return View();
    }

我们缺少什么吗?还是有其他方法可以实现这一目标。


阅读 486

收藏
2020-07-04

共1个答案

一尘不染

设法解决了这个…

从div标签删除行

flow-files-submitted="$flow.upload()"

然后点击一个按钮,传入$ flow作为参数

ng-click="InsertItems($flow)"

Javascript:-

$scope.InsertItems = function(e)
{
//Do what you need to do
e.upload();
}
2020-07-04