Итак, есть проблема ... Я пытаюсь загрузить изображение в папку, как только оно будет изменено с помощью метода, но ничего не показывает мне никаких ошибок или чего-то еще, но он не сохраняет изображение в моей папке. Вот коды:
Шаблон Account.vue (localhost: 8081 / аккаунт)
<label class = "profileImg" for = "profileImg"><img :src = "profileImg" alt = "Profilio nuotrauka"></label>
<input name = "profileImg" id = "profileImg" accept = "image/*" @change = "uploadProfileImg" class = "mt-3" style = "display: none" type = "file">
Сценарий Account.vue
async uploadProfileImg () {
try {
await VendorService.uploadProfileImg({
id: this.$store.state.vendor.id
// otherImg: this.otherImg
})
} catch (error) {
this.error = error.response.data.error
}
}
VendorService.js
uploadProfileImg () {
return Api().post('account')
}
Api.js
export default () => {
return axios.create({
baseURL: `http://localhost:8082/`
})
}
App.js
const app = express()
app.use(morgan('combined'))
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())
app.use(cors())
require('./routes')(app)
routes.js
app.post('/account',
VendorsController.uploadProfileImg)
VendorsController.js
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '../../tmpUploads/')
},
filename: function (req, file, cb) {
cb(null, req.body.id + '_profileImg')
}
})
const upload = multer({storage: storage}).single('profileImg')
async uploadProfileImg (req, res) {
try {
// const { id } = req.body
await upload(req, res, function (err) {
if (err) {
return res.send('Fail!')
} else {
return res.send('Success')
}
})
// cloudinary.v2.uploader.upload(`../../tmpUploads/${id}_profileImg`, {
// public_id: `${id}_profileImg`,
// overwrite: true
// }, function (result) {
// console.info(result)
// })
} catch (err) {
res.status(400).send({
error: 'Something went wrong'
})
}
}
и да, конечно, я импортирую все необходимые модули.
@ a-Domeika извините, у меня нет решения вашей проблемы, но очень хорошее руководство по этой теме можно найти здесь: bezkoder.com/node-js-express-file-upload





У меня была такая же проблема, попробуйте изменить путь, пропуская такие каталоги, как этот
tmpUploads /
Чтобы проверить, обработали ли ваш файл
console.info(req.file)
Результат будет выглядеть так
{
fieldname: 'profileImg',
originalname: 'download.jpeg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: 'tmpUploads/',
filename: '1533819783059_profileImg',
path: 'tmpUploads/1533819783059_profileImg',
size: 11320
}
Используйте объект FormData для отправки в API.
Нет решения? Даже очень опытные программисты не знают, в чем проблема?