Select to view content in your preferred language

Feature attachment for large file returns 500 error

60
0
9 hours ago
MKY
by
Occasional Contributor

I have ArcGIS Server 11.5 with the following configuration:

Setver setup.png

 

 

I can upload feature attachments (up to 20MB) using the following function called popup action.

popup action.png

 

The function is:

    function _addAttachment(feature: any) {
        //create form
        const attachmentForm = document.createElement("form");
        attachmentForm.setAttribute("id", "attachmentForm");
        let fileSelector = document.createElement("input");
        fileSelector.setAttribute("id", "fileInput");
        fileSelector.setAttribute("type", "file");
        fileSelector.setAttribute("name", "attachment");
        fileSelector.setAttribute("accept", "image/*,video/*,application/pdf");
        let entInput = document.createElement("input");
        entInput.setAttribute("name", "f");
        entInput.setAttribute("value", "json");
        attachmentForm.appendChild(fileSelector);
        attachmentForm.appendChild(entInput);
        document.body.appendChild(attachmentForm);
        document.getElementById('fileInput')?.addEventListener("change", (e) => {
            let uploadedFile = (e.target as any).files[0];
            if (!uploadedFile) {
                let message = "No file has been selected.";
                (document.getElementById("calcite-error-content") as any).innerHTML = message;
                (document.getElementById("calcite-error-modal") as any).open = true;
                return;
            }
            const formData = new FormData(attachmentForm);
            console.log(formData);
            // The attachment is taken from the form.
            feature.layer.addAttachment(feature, formData).then((result: any) => {
                if (result.error === null) {
                    alert("Attachment has been successfully uploaded.");
                }
                //delete form node
                document.body.removeChild(document.getElementById("attachmentForm") as any);
            }).catch((error:any) => {
                //delete form node
                document.body.removeChild(document.getElementById("attachmentForm") as any);
                console.log("attachment adding failed: ", error);
                alert("Attachment upload has failed.");
            });
        });
        document.getElementById('fileInput')?.click();
    }

 

I tried for file size of 170MB and fails with 500 error code.

Interestingly, I can upload this using fearureTable add attachment.
ft attachment.png

 

I appreciate for any work aroun
 
0 Kudos
0 Replies