Hi All,
I am working on a app which provide upload image feature on server but I am not able to upload images from app to server, I followed sample app (QuickReport->controls->FeatureServiceManager->function addAttachement()) but not able to upload images, I can send request to server php file but not getting images, I printed $_REQUEST and $_FILE in php file, both displaying empty. Kindly help me.
Manoj,
I don't quite understand the entire issue. So, are you using the out of the box Quick Report template? or did you modify QuickReport->controls->FeatureServiceManager->function addAttachement()? Or is it a custom app with code that you get from the Quick Report template? if yes, maybe you can share the code snippets.
Is this being uploaded to ArcGIS Online or Enterprise? Or going to 3rd party server?
In general, NetworkRequest is created so that you can send a request to ArcGIS Online or Enterprise easier with all the properties and settings set by default. You can take a look at this here, https://developers.arcgis.com/appstudio/api-reference/qml-arcgis-appframework-networkrequest/ or use the Javascript XMLHttpRequest object, XMLHttpRequest - Web APIs | MDN
Thank you,
Erwin
Hi Erwin,
I am using the QuickReport template's QuickReport/controls/FeatureServiceManager.qml file in my custom app to upload image on my server, I modified the the uploadAttachment function, here is code
function uploadAttachment(filePath, featureglobalId, callback, cacheI)
{ var targetUrl = "https://mysite.com/image_upload.php";
var component = uploadAttachmentNetworkRequestComponent;
var uploadAttachmentNetworkRequest = component.createObject(parent);
uploadAttachmentNetworkRequest.url = targetUrl;
uploadAttachmentNetworkRequest.callback = callback;
var obj = {"file": "@"+filePath,"f": "json"};
uploadAttachmentNetworkRequest.send(obj);
} Here is my code where I am trying to attach imagevar attachments = [];var i = 0;var featureUid = AppFramework.createUuidString(0)
var file_p = '/Users/manoj/ArcGIS/AppStudio/Data/048f304c732c403191cba6a0411cdcc7.jpg';var fileInfo = AppFramework.fileInfo(file_p);var fileName = fileInfo.fileNamevar arr = fileName.split(".");var suffix = arr[1];var imageFilePath = fileInfo.filePath
var sizeOfAttachment = app.getFileSize(file_p)
attachments[i] = {"type":suffix,"size":sizeOfAttachment,"name":fileInfo.fileName,"filePath":file_p}
featureServiceManager.uploadAttachment(imageFilePath, featureUid, function(errorcode, responseJson, fileIndex){
}, i);}
I am not getting any file data on server.
could you please guide how can I upload image from my custom app to my server?
I see. I think it's a little bit tricky to debug it since it is going to your own server and your own PHP code. Those code are created to upload attachment specifically to ArcGIS Feature Service. I am not sure if your server and PHP code have the same specs. We are not using PHP in ArcGIS Feature Service.
My recommendation would be to first try it using an application like the Postman and then maybe try building a simple independent javascript function that would do that using XMLHttpRequest, XMLHttpRequest - Web APIs | MDN after that technically the same code that uses XMLHttpRequest should work inside AppStudio app.
I tried XMLHTTPREQUEST to send data to my php file, it's working fine to upload
text data except image upload, I did not find any example or solution to upload image
from app to my php server by using xmlhttprequest, do you have any example
about this? or we can do this by any other way?