在ondata事件中获取文件路径

时间:2020-10-26 12:31:08

标签: filepond

我正在使用ondata事件将数据添加到formData,但是我需要在那里的相对文件路径(以防有人上载文件夹,因此上载后我可以在服务器上重新创建相同的结构,例如{{ 1}})

如何在ondata事件中获取_relativePath?

/myFolder/fileploaded.jpg

1 个答案:

答案 0 :(得分:0)

没关系,我没有在docs中看到有更高级的处理功能:

FilePond.setOptions({
    server: {
        process:(fieldName, file, metadata, load, error, progress, abort, transfer, options) => {

            // fieldName is the name of the input field
            // file is the actual file object to send
            const formData = new FormData();
            formData.append(fieldName, file, file.name);

            const request = new XMLHttpRequest();
            request.open('POST', 'url-to-api');

            // Should call the progress method to update the progress to 100% before calling load
            // Setting computable to false switches the loading indicator to infinite mode
            request.upload.onprogress = (e) => {
                progress(e.lengthComputable, e.loaded, e.total);
            };

            // Should call the load method when done and pass the returned server file id
            // this server file id is then used later on when reverting or restoring a file
            // so your server knows which file to return without exposing that info to the client
            request.onload = function() {
                if (request.status >= 200 && request.status < 300) {
                    // the load method accepts either a string (id) or an object
                    load(request.responseText);
                }
                else {
                    // Can call the error method if something is wrong, should exit after
                    error('oh no');
                }
            };

            request.send(formData);
            
            // Should expose an abort method so the request can be cancelled
            return {
                abort: () => {
                    // This function is entered if the user has tapped the cancel button
                    request.abort();

                    // Let FilePond know the request has been cancelled
                    abort();
                }
            };
        }
    }
});
相关问题