将图片从节点js服务器上传到PHP服务器
问题描述:
我有一张图片保存在我的节点服务器上。我需要将此图像发送到使用PHP编写的API。 api接受来自php的$ _FILES的文件。将图片从节点js服务器上传到PHP服务器
如何将文件从节点发送到PHP API,以便它可以从$ _FILES读取。
我使用NPM 请求包发送请求
答
你可以尝试像下面也许是:
var request = require('request');
var fs = require('fs');
var data = {
file: fs.createReadStream('/path/to/my/image.jpg')
};
request.post({ url:'http://example.com/upload.php', formData:data }, function callback(err, response, body) {
if(err) {
return console.error('Failed to upload:', err);
}
console.log('Upload successful!');
});
或者,如果要创建一个页面,允许用户选择照片上传
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form action="http://example.com/upload.php" method="post" enctype="multipart/form-data">');
res.write('<input type="file" name="usrfile" />');
res.write('<input type="submit" />');
res.write('</form>');
return res.end();
}).listen(8088);
在PHP服务器来处理,你可以做到这一点上传:
<?php
/* node.js upload target ~ "upload.php" */
if(isset($_FILES)){
/* change path to suit environment */
$dir='c:/temp/fileuploads/1/';
$obj=(object)$_FILES['file'];
$name=$obj->name;
$tmp=$obj->tmp_name;
$result = move_uploaded_file($tmp, $dir.$name);
echo $result ? 'File '.$name.' ws moved to '.$dir : 'Error: Failed to save '.$name;
}
?>
+0
谢谢......这部分工作为我。图像被捕获$ _FILES。但我的代码失败,因为move_uploaded_file总是返回false。没有错误。我认为这与文件没有被php上传的事实有关。有没有解决这个问题? –
该文档有一个示例:[发送表单](https://www.npmjs.com/package/request#forms) – AlexM