Android upload.single()未解析且req.file未定义

Android upload.single()未解析且req.file未定义,android,node.js,Android,Node.js,这是webstorm.upload.single上的服务器代码给出未解决的错误我已经安装了multer模块,但仍然给出错误,即使我不使用upload.single req.files,当console.log时给出未定义的错误 var express = require('express'); var logger = require('morgan'); var bodyParser = require('body-parser'); var request = require('reques

这是webstorm.upload.single上的服务器代码给出未解决的错误我已经安装了multer模块,但仍然给出错误,即使我不使用upload.single req.files,当console.log时给出未定义的错误

var express = require('express');
var logger = require('morgan');
var bodyParser = require('body-parser');
var request = require('request');
var multer = require('multer');

**var upload = multer({ dest: 'uploads/' });**


var app = express();
var port     = process.env.PORT || 8080;
var config = require("./config");
var requests = require("./model")(config);

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/uploadimage',**upload.single('img')**,function(req,res){
    console.log(req.file);


});
这是客户端代码

public class filterpic extends AppCompatActivity {

File filePath;
String photoPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.filter_page);
    Toolbar toolbar = (Toolbar) findViewById(R.id.appbar0);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    Bundle extras = getIntent().getExtras();
    **photoPath = extras.getString("photoPath");
    filePath = getFileStreamPath(photoPath);**

    Bitmap bitmap = BitmapFactory.decodeFile(String.valueOf(filePath));
    ImageView imgView = (ImageView) findViewById(R.id.imagebyte);
    imgView.setImageBitmap(bitmap);
}

public void upload(View view){
    new HttpUpload(this,String.valueOf(filePath)).execute();


}
}

公共类HttpUpload扩展异步任务{
私人语境;
私有字符串imgPath;
int serverResponseCode=0;
公共HttpUpload(上下文,字符串imgPath){
超级();
this.context=上下文;
this.imgPath=imgPath;
}
@凌驾
受保护的整数doInBackground(Void…params){
字符串upLoadServerUri=”http://192.168.10.182:8080/uploadimage";
HttpURLConnection conn=null;
DataOutputStream dos=null;
字符串lineEnd=“\r\n”;
字符串双连字符=“--”;
字符串边界=“*******”;
int字节读取,字节可用,缓冲区大小;
字节[]缓冲区;
int maxBufferSize=1*1024*1024;
File sourceFile=新文件(imgPath);
如果(!sourceFile.isFile()){
Log.e(“上传文件”,“源文件不存在”);
返回0;
}
尝试{//打开到Servlet的URL连接
FileInputStream FileInputStream=新的FileInputStream(sourceFile);
Log.i(“上传文件”,“文件输入流”);
URL URL=新URL(upLoadServerUri);
conn=(HttpURLConnection)url.openConnection();//打开到url的HTTP连接
conn.setDoInput(true);//允许输入
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不要使用缓存副本
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“连接”、“保持活动”);
conn.setRequestProperty(“ENCTYPE”、“多部分/表单数据”);
conn.setRequestProperty(“内容类型”、“多部分/表单数据;边界=“+boundary”);
conn.setRequestProperty(“上传的_文件”,imgPath);
dos=新的DataOutputStream(conn.getOutputStream());
写字节(两个连字符+边界+行结束);
writeBytes(“内容处理:表单数据;名称=\”上传的文件\“文件名=\”+imgPath+“\”+lineEnd);
dos.writeBytes(lineEnd);
bytesAvailable=fileInputStream.available();//创建最大大小的缓冲区
bufferSize=Math.min(字节可用,maxBufferSize);
buffer=新字节[bufferSize];
//读取文件并将其写入表单。。。
bytesRead=fileInputStream.read(缓冲区,0,缓冲区大小);
而(字节读取>0){
写入(缓冲区,0,缓冲区大小);
bytesAvailable=fileInputStream.available();
bufferSize=Math.min(字节可用,maxBufferSize);
bytesRead=fileInputStream.read(缓冲区,0,缓冲区大小);
}
//发送文件数据后所需的多部分表单数据。。。
dos.writeBytes(lineEnd);
写字节(两个连字符+边界+两个连字符+行结束);
//来自服务器的响应(代码和消息)
serverResponseCode=conn.getResponseCode();
字符串serverResponseMessage=conn.getResponseMessage();
Log.i(“uploadFile”,“HTTP响应为:“+serverResponseMessage+”:“+serverResponseCode”);
//关闭溪流//
fileInputStream.close();
dos.flush();
dos.close();
}捕获(格式错误){
例如printStackTrace();
Log.e(“将文件上载到服务器”,“错误:+ex.getMessage(),ex”);
}捕获(例外e){
e、 printStackTrace();
Log.e(“上传文件到服务器异常”,“异常:+e.getMessage(),e”);
}
返回null;
}
}

您的节点服务器正在查找名为
img
的文件字段,但您的Java代码正在使用
上载的\u文件。更改一个或另一个,它应该可以工作(前提是Java客户端正确格式化请求)。

您的节点服务器正在查找名为
img
的文件字段,但您的Java代码正在使用
上载的\u文件。更改一个或另一个,它应该可以工作(前提是Java客户端正确格式化请求)。

风暴过后回答,但在谷歌上搜索这个问题,这是第一个结果之一。安装multer的类型定义可以解决Webstorm中未解决的错误

npm install --save @types/multer

在风暴过后回答,但在谷歌上搜索这个问题,这是第一个结果之一。安装multer的类型定义可以解决Webstorm中未解决的错误

npm install --save @types/multer

upload.single()给出了一个未解决的错误,即使安装了multer模块,webstorm也不会将其识别为一种方法。如果Java客户端正确格式化请求,那么这是什么意思呢?关于“未解决的错误”,请确保安装了最新版本的
multer
,以防万一。我不使用Webstorm,所以我不确定它与节点模块的配合情况如何。RE:Java客户端请求格式化,我指的是手动制作多部分请求的Java代码(将部分和边界缝合在一起,手动设置各种标题等)。你能为nodejs推荐一个更好的ide吗?你使用哪种ide?我帮不了你,因为我不使用IDEs。upload.single()给出一个未解决的错误webstorm即使安装了multer模块也不会将其识别为一种方法。如果Java客户端正确格式化了请求,那么“未解决的错误”是什么意思?请确保安装了最新版本的
multer
,以防万一。我不使用Webstorm,所以我不确定它与节点模块的配合情况如何。回复:Java客户端请求格式化,我指的是手动制作多部分请求的Java代码(将部分和边界缝合在一起,手动设置各种标题等)。你能为nodejs推荐一个更好的ide吗?你使用哪种ide?我不能帮你,因为我不使用ide。