Обработка ошибки 413 (слишком сложный объект запроса) с помощью try / catch - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь понять, как обрабатывать ошибку 413 при загрузке файлов, to show the user that the file they are trying to upload is too large.Я загружаю файлы из компонента в React , используя React-dropzone , затем передаю его в sagas , после чего функция в sagas перебирает файл иотправьте каждый файл на Rails - загрузите файлы, используя Carrierwave , затем rails вернет некоторые данные в случае успешной загрузки.

MyUploadComponent.jsx

this.state = {
    files: [{file1}, {file2}, {file3}]
}

uploadFiles = () => {
    this.props.saveFiles(this.state.files)
}

sagas.js

function* saveFiles(action){
    let err = false  
    let completed;

    const results = yield Promise.all(action.files.map(function(file){

        return saveFile(file)

    })).then(data => {

        completed = data

    })

    yield put({
        type: actionTypes.FILE_UPLOADED,
        index: completed
    })

}

function saveFile(file, cid, index){
    try{
        let formData = new FormData()
        formData.append("file", file)

        let result = fetch(URL,
        {
            method: "POST",
            credentials: "same-origin",
            body: formData
        }).then(response => response.json()).then(function(data){
            return data
        })

        return result
    } catch(ex) { console.log(ex) }

}

Когда у меня возникает ошибка 413, я также получаю это дополнительное сообщение

ошибка 413 Файл слишком большой

...