Angularjs 角度文件上传-如何获取上传文件的URL

Angularjs 角度文件上传-如何获取上传文件的URL,angularjs,Angularjs,我正在尝试创建一个表单,用户可以选择一个图像并作为条目的一部分进行上传 我有上传功能工作。当用户选择图像并按“上载”时,图像将上载到服务器上的文件夹 然而,我需要做的是以某种方式获取URL并将其用作表单中的参数 按钮只调用上传功能 <button class="btn btn-primary" ng-click="uploadProductPicture();">Upload</button> 当用户上传文件时,我从哪里获得URL 添加了服务器逻辑 exports.ch

我正在尝试创建一个表单,用户可以选择一个图像并作为条目的一部分进行上传

我有上传功能工作。当用户选择图像并按“上载”时,图像将上载到服务器上的文件夹

然而,我需要做的是以某种方式获取URL并将其用作表单中的参数

按钮只调用上传功能

<button class="btn btn-primary" ng-click="uploadProductPicture();">Upload</button>
当用户上传文件时,我从哪里获得URL

添加了服务器逻辑

exports.changeProductPicture = function (req, res) {

        fs.writeFile('./modules/deals/client/img/uploads/' + req.files.file.name, req.files.file.buffer, function (uploadError) {
            if (uploadError) {
                return res.status(400).send({
                    message: 'Error occurred while uploading profile picture'
                });
            } else {

                res.json({ file: req.files.file.name });

                // Set variable to file location

            }
        });

};
路线

  app.route('/api/deals/picture')
  .post(deals.changeProductPicture);

首先,您需要决定如何为上传到服务器中的图像文件提供服务。 如果在节点服务器中使用
express
,则可以使用
express.static
模块像普通静态图像一样为上载的图像提供服务

我认为代码是这样的

在节点中 现在,客户端可以通过提取json响应来使用上传图像的url


我希望这个例子能让您有所了解。

使用将文件写入目录的相同服务器逻辑返回urlIm,但我不确定如何返回。我添加了路由调用的函数,但我相当确定我的设置是错误的。
  app.route('/api/deals/picture')
  .post(deals.changeProductPicture);
var upload_image_dir = './modules/deals/client/img/uploads/';

// route setting
app.use('/upload-images', express.static(upload_image_dir));

// image upload handler
exports.changeProductPicture = function (req, res) {

    fs.writeFile(upload_image_dir + req.files.file.name, req.files.file.buffer, function (uploadError) {
        if (uploadError) {
            return res.status(400).send({
                message: 'Error occurred while uploading profile picture'
            });
        } else {
            res.json({ file: req.files.file.name,
                url_image: upload_image_dir + req.files.file.name
            });
        }
    });
};