내 서버에 이미지를 제출하려고합니다.몽구스를 사용하여 Node.js 서버에 여러 이미지 업로드
Objective-C 부분에서 "name"과 "filename"이있는 "form-data"를 사용하여 HTTP 본문에 이미지 데이터를 추가합니다. 아래는 관련 스 니펫입니다. 나는 다른 부분들이 정확해야한다고 확신한다. 필요한 "내용 - 처리"만약에 라인에 초점을하시기 바랍니다 :
...
// Append image data to body data
NSMutableData *bodyData = [NSMutableData data];
int i = 1;
for (NSData *imgData in allImgData) {
[bodyData appendData:[[NSString stringWithFormat:@"--%@\r\n", boundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]];
[bodyData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"photoToUpload[]\"; filename=\"%@%d.png\"\r\n", fileParamConstant, i] dataUsingEncoding:NSUTF8StringEncoding]];
[bodyData appendData:[@"Content-Type: image/png\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[bodyData appendData:imgData];
[bodyData appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
i++;
}
// Append one last boundary
[bodyData appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]];
// setting the body of the post to the reqeust
[urlRequest setHTTPBody:bodyData];
...
문제를
그러나, 온라인으로 여러 게시물을 검색 한 후, 나는 아직도 내가 을 처리하는 방법을 이렇게 확실하지 않다 mongoose을 사용하는 nodejs와 서버 파트. 내 Objective-C 부분을 기반으로 "req.body"또는 "req.files"에서 이미지를 얻어야합니까? 그래서 내 문제는 HTTP 요청을 이해 거짓말, 특히 위의 "내용 - 처분"부분과 관련이 있다고 생각합니다.
다음은 내 현재 nodejs 코드 :
// on routes that end in /users/competitorAnalysisPhotoData
// ----------------------------------------------------
router.route('/users/competitorAnalysisPhotoData/:userName')
// update the user info (accessed at PUT http://localhost:8080/api/users/competitorAnalysisPhotoData)
.put(function(req, res) {
// use our user model to find the user we want
User.findOne({ userName: req.params.userName}, function(err, user) {
if (err)
res.send(err);
console.log('Got the user in "Put"!');
// update the photos -- Version 1
user.competitorAnalysis.push({
photo1: req.body.photo1,
photo2: req.body.photo2,
photo3: req.body.photo3,
photo4: req.body.photo4
});
console.log('req.body.photo1: %s', req.body.photo1);
console.log('Save the photo data for competitorAnalysisPhotoData!');
// update the photos -- Version 2
user.competitorAnalysis.photo1.data = fs.readFileSync(req.files.photo1.path)
user.competitorAnalysis.photo1.contentType = 'image/png';
user.competitorAnalysis.photo2.data = fs.readFileSync(req.files.photo2.path)
user.competitorAnalysis.photo2.contentType = 'image/png';
user.competitorAnalysis.photo3.data = fs.readFileSync(req.files.photo3.path)
user.competitorAnalysis.photo3.contentType = 'image/png';
user.competitorAnalysis.photo4.data = fs.readFileSync(req.files.photo4.path)
user.competitorAnalysis.photo4.contentType = 'image/png';
console.log('req.files.photo1.path: %s', req.files.photo1.path);
console.log('Save the photo data for competitorAnalysisPhotoData!');
// save the user
user.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'User updated!' });
});
});
내가 제대로 서버 측 처리하는 방법에 대한 몇 가지 제안을 얻을 수 있다면 그것은 좋은 것입니다.