小编Kod*_*ode的帖子

Node/Multer获取文件名

我使用以下内容通过Multer将文件上传到目录.它工作得很好,但我需要在上传后执行一些操作,这些操作需要我刚刚发布到"upload"目录的文件名.如何获取刚刚发布的文件的名称?

// Multer storage options
var storage = multer.diskStorage({
  destination: function(req, file, cb) {
    cb(null, 'upload/');
  },
  filename: function(req, file, cb) {
    cb(null, file.originalname + '-' + Date.now() + '.pdf');
  }
});

var upload = multer({ storage: storage });

app.post('/multer', upload.single('file'), function(req, res) {
  // Need full filename created here
});
Run Code Online (Sandbox Code Playgroud)

node.js multer

21
推荐指数
3
解决办法
3万
查看次数

使用AngularJS将正确编码的(base64?)映像上载到SharePoint

我可以将图像文件上传到SharePoint,但它不会被识别为图像.我已经尝试使用以下指令,该指令基于研究表明图像在上传到SharePoint时需要进行base64编码,但它仍然会上传一个看似已损坏的文件:https://github.com/adonespitogo/angular-base64-upload

我很高兴使用此指令,但不确定如何将我需要的内容传递到SharePoint的REST API中.

我原来的迭代不使用这个指令,但更多的是直接上传尝试.

我需要达到的目的如下:

1)成功上传图像而不会"损坏",这是否需要base64编码/我该如何实现?

2)按名称上传图像(不是"test.jpg")并有一些元数据(例如上传一个带有它所属的标题或部门名称的图像)

迭代1:无指令 这是我的HTML(请注意控制器通过ng-route绑定到页面):

 <div class="col-md-12">
        <form>
            <input type="file" onchange="angular.element(this).scope().filesChanged(this)" data-ng-model="files" multiple>
            <button data-ng-click="upload()">Submit</button>
            <li data-ng-repeat="file in files">{{file.name}}</li>
        </form>            
    </div>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

$scope.filesChanged = function (elm) {
        $scope.files = elm.files
        $scope.$apply();
    }
    $scope.upload = function () {
        var fd = new FormData()
        angular.forEach($scope.files,function(file){
            fd.append('file',file)
        })
            $http.post("/sites/asite/_api/web/lists/getByTitle('Images')/RootFolder/Files/add(url='test.jpg',overwrite='true')", fd,
                    {
                        transformRequest: angular.identity,
                        headers: {
                            'Content-Type':undefined, 'X-RequestDigest': $("#__REQUESTDIGEST").val()}
                }).success(function (d) {
                    console.log(d);
                });
            }
Run Code Online (Sandbox Code Playgroud)

更新:我认为这个问题与我的$ http帖子分离到了SharePoint.使用上面提到的指令,我可以输出base64,但不确定如何将其传递到我的帖子中进行上传.

迭代2:使用指令 这是我使用https://github.com/adonespitogo/angular-base64-upload指令的当前HTML :

<form>
<input type="file" data-ng-model="files" …
Run Code Online (Sandbox Code Playgroud)

javascript sharepoint image angularjs sharepoint-2013

19
推荐指数
1
解决办法
5940
查看次数

Angular UI Bootstrap与AngularStrap vs Bootstrap

我一直在研究使用Bootstrap和Angular的选项,它似乎专注于两个:

Angular UI Bootstrap
AngularStrap
Run Code Online (Sandbox Code Playgroud)

我看到只使用本机Bootstrap的第三种选择.所有方法的利弊是什么?这似乎暗示Angular UI Bootstrap功能不完整:

使用哪一个,AngularUI Bootstrap或AngularStrap?

twitter-bootstrap angularjs angular-ui angular-strap

10
推荐指数
2
解决办法
7930
查看次数

使用Dashes而不是ID将URL设置为SEO Friendly Title

我正在使用AngularJS创建一个文章页面,其中包含各个文章详细信息的链接.链接基于ID以确保它们是唯一的,但我希望URL是带破折号的标题(更多SEO /用户友好)而不是ID.以下是Angular示例,其中产品详细信息是干净的标题:

http://angular.github.io/angular-phonecat/step-11/app/#/phones

我目前的网址是按ID链接的,因此它们显示为文章/ 66D5069C-DC67-46FC-8A51-1F15A94216D4

我希望它们显示为文章标题,如文章/开始投资,并确保它们是SEO友好的.

我担心的是,如果不同作者的两篇文章具有相同的标题(例如,了解投资),如果我尝试按标题链接/查找与每篇文章唯一的ID,我将收到错误.

这是我的控制器:

var pfcControllers = angular.module('pfcControllers', []);

pfcControllers.controller('pfcCtrl', ['$scope', 'pfcArticles', function ($scope, pfcArticles) {
$scope.articles = pfcArticles.query();
}]);

pfcControllers.controller('pfcCtrl2', ['$scope', '$routeParams', 'pfcArticles', function ($scope, $routeParams, pfcArticles) {
$scope.article = pfcArticles.get({ articleID: $routeParams.articleID });
}]);
Run Code Online (Sandbox Code Playgroud)

这是我的路由器:

var pfcModule = angular.module('pfcModule', ['ngRoute', 'pfcServices', 'pfcControllers']); pfcModule.config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/home', { templateUrl: './views/home.html'}). when('/categories', { templateUrl: './views/categories.html', controller: 'pfcCtrl' }). when('/article/:articleID', { templateUrl: './views/articles.html', controller: 'pfcCtrl2' }). otherwise({ redirectTo: '/home' }); }]);
Run Code Online (Sandbox Code Playgroud)

这是我的两个部分:

Categories.html(多篇文章)

<div class="row"> …
Run Code Online (Sandbox Code Playgroud)

javascript seo angularjs

9
推荐指数
1
解决办法
1357
查看次数

带有MVC 5和实体框架的jQuery Datatable

我需要一些关于将什么放入我的控制器的指导,以便我可以使用我的jQuery数据表进行服务器端处理.我正在使用MVC 5和Entity Framework.

以下示例:http://datatablesmvc.codeplex.com/documentation说明以下内容:

public class HomeController : Controller {
[HttpPost]
 public ActionResult GetDataTables(DataTable dataTable) {
  List<List<string>> table = new List<List<string>>();
  //Do something with dataTable and fill table    
  return new DataTableResult(dataTable, table.Count, table.Count, table);
   }
 }
Run Code Online (Sandbox Code Playgroud)

但是当我使用这样的LINQ时我该怎么办?

 public ActionResult Index()
         {
           var activity = db.Activity.Include(a => a.ActivityType);
              return View(activity.ToList());
          }
Run Code Online (Sandbox Code Playgroud)

linq ajax asp.net-mvc entity-framework datatables

8
推荐指数
1
解决办法
2万
查看次数

AngularJS强制Firefox/Safari下载文件而不是在浏览器中打开

我有一个PDF文件可以在除Firefox/Safari之外的所有浏览器上下载.它在浏览器窗口中打开它而不是下载文件.我的网站运行在node.js之上并托管在Azure中.用户下载的文件来自Azure blob存储,所以我怀疑这可能是一个CORS问题.

这是我下载的客户端代码:

<a href="{{fileURL}}" class="btn btn-default" download="myfile.pdf">Download File</a>
Run Code Online (Sandbox Code Playgroud)

这是服务器端代码:

$scope.fileURL = 'https://myblob.blob.core.windows.net/8282020/myfile.pdf';
Run Code Online (Sandbox Code Playgroud)

更新:我可以通过在Azure中根据以下帮助设置blob属性来添加内容处置,并且它将处置显示为"附件",但在FireFox/Safari中它仍然在浏览器中打开.这可能被阻止,因为Azure Blob存储可能被视为CORS?

更新2:将以下内容添加到我的HTML标记似乎在FireFox(但不是Safari)中有效,这是跨浏览器处理此问题的正确方法

type="application/octet-stream"
Run Code Online (Sandbox Code Playgroud)

更新3:通过节点设置内容处置和内容类型似乎正在工作.我不得不问,这是正确的方法吗?

blobSvc.setBlobProperties(containerName, filename, { contentDisposition: 'attachment', contentType: 'application/octet-stream' }, function (error, result, response) {
// result code here....
})
Run Code Online (Sandbox Code Playgroud)

firefox azure node.js cors angularjs

8
推荐指数
1
解决办法
3358
查看次数

如何从最终用户隐藏REST API URL?

是否可以隐藏我通过AJAX使用的REST URL来填充页面数据?我不希望其他人从我的REST API中获取和消费,但需要使用它来显示我站点中的内容.

如何从最终用户隐藏REST API URL?

javascript rest

7
推荐指数
2
解决办法
9968
查看次数

无法在SQL Server Management Studio中编辑Azure数据库的行

我无法使用SQL Server Management Studio编辑或查看Azure数据库中的行.我错过了一些明显的东西吗 选项不存在.

sql-server ssms azure

7
推荐指数
1
解决办法
8724
查看次数

从手机上传到Angular的图片是侧面或颠倒的

我能够将我的桌面上的图像上传到基于Angular的Web应用程序,而不会出现问题,但是如果我从手机(如iPhone)上传,请使用"拍摄照片或视频"或"照片库"功能,当在横向拍摄时,它会导致图像在纵向拍摄时或横向拍摄.这是我目前的上传功能.任何线索/让其他人都有同样的问题从iPhone /移动电话上传到移动Web应用程序到SharePoint库?

这是我的上传功能:

  // Upload of images
    $scope.upload = function () {
        //console.log($scope.files);
            if (document.getElementById("file").files.length === 0) {
                alert('No file was selected');
                return;
            }
            var parts = document.getElementById("file").value.split("\\");
            var uploadedfilename = parts[parts.length - 1];
            var basefilename = uploadedfilename.split(".")[0];
            var fileextension = uploadedfilename.split(".")[1];
            var currentdate = new Date();
            var formatteddate = $filter('date')(new Date(currentdate), 'MMddyy-hmmssa');
            var filename = basefilename + formatteddate + '.' + fileextension;
            var file = document.getElementById("file").files[0];
            uploadFileSync("/sites/asite", "Images", filename, file);
        }

        //Upload file synchronously
    function uploadFileSync(spWebUrl, library, filename, file) …
Run Code Online (Sandbox Code Playgroud)

iphone sharepoint jquery-mobile angularjs sharepoint-2013

7
推荐指数
1
解决办法
2538
查看次数

在初始加载时在Three.JS Canvas中安装3D对象(Collada文件)

我有一个盒子(collada文件)加载在three.js画布中.我可以按预期与它互动.但是,框大小会因用户可以更改大小而异.

当我将它加载到500px乘500px画布时,如果框大,用户必须在看到它之前放大,如果它很小,它很小,用户需要放大.尺寸根据变量而变化通过.

如何在加载画布时将对象(collada文件)放入画布中,然后让用户缩放?下面是加载点击以在three.js画布中显示3D对象的代码:

$scope.generate3D = function () {

        // 3D OBJECT - Variables
        var texture0 = baseBlobURL + 'Texture_0.png';
        var boxDAE = baseBlobURL + 'Box.dae';
        var scene;
        var camera;
        var renderer;
        var box;
        var controls;
        var newtexture;

        // Update texture
        newtexture = THREE.ImageUtils.loadTexture(texture0);

        // Initial call to render scene, from this point, Orbit Controls render the scene per the event listener
        THREE.DefaultLoadingManager.onProgress = function (item, loaded, total) {
            // console.log( item, loaded, total ); // debug
            if (loaded …
Run Code Online (Sandbox Code Playgroud)

canvas three.js

6
推荐指数
2
解决办法
1556
查看次数