Вот код, который я использую для загрузки файла с собственного клиента на сервер nodejs. Однако, когда я вызываю эту функцию для загрузки файла на сервер, она выдает эту ошибку Failed to connect to localhost/127.0.0.1:7171
. Я проверил сервер узла с почтальоном, и он работает нормально. Кроме того, я попробовал решение, которое устанавливает android:usesCleartextTraffic="true"
в манифесте android, но это решение не сработало.
async uploadToNode() {
let testUrl = this.state.multipleFile[0].uri;
const split = testUrl.split('/');
const name = split.pop();
const setFileName = "file"
const inbox = split.pop();
const realPath = `${RNFS.TemporaryDirectoryPath}${inbox}/${name}`;
console.log(realPath);
const uploadUrl = "http://localhost:7171/uploadToIpfs";
var file = [{
name: "file",
filename:name,
filepath: realPath,
}];
var uploadBegin = (response) => {
const jobId = response.jobId;
console.log('UPLOAD HAS BEGUN! JobId: ' + jobId);
};
var uploadProgress = (response) => {
const percentage = Math.floor((response.totalBytesSent / response.totalBytesExpectedToSend) * 100);
console.log('UPLOAD IS ' + percentage + '% DONE!');
};
RNFS.uploadFiles({
toUrl: uploadUrl,
files: file,
method: 'POST',
headers: {
'Accept': 'application/json',
},
begin: uploadBegin,
progress: uploadProgress
})
.promise.then((response) => {
console.log(response,"<<< Response");
if (response.statusCode == 200) { //You might not be getting a statusCode at all. Check
console.log('FILES UPLOADED!');
} else {
console.log('SERVER ERROR');
}
})
.catch((err) => {
if (err.description) {
switch (err.description) {
case "cancelled":
console.log("Upload cancelled");
break;
case "empty":
console.log("Empty file");
default:
//Unknown
}
} else {
//Weird
}
console.log("Some Error"+ err);
});
}