diff --git a/Controller/UploadController.php b/Controller/UploadController.php
index 4a14530317e85c885e24e94ca64cbd2ed4069e32..5c669752e554c638d38ffde8eb3767e59affc2e3 100644
--- a/Controller/UploadController.php
+++ b/Controller/UploadController.php
@@ -75,30 +75,34 @@ class UploadController extends Controller
 
         $token = $this->csrfProvider->generateCsrfToken(self::CSRF_INTENTION);
 
-        $location = $this->router->generate(
-            'file_upload_put',
-            [
-                'id' => $file->getId(),
-                'token' => $token
-            ],
-            RouterInterface::ABSOLUTE_URL
-        );
+        $parameters = [
+            'id' => $file->getId(),
+            'token' => $token
+        ];
+
+        $delete_url = $this->router->generate('file_upload_delete', $parameters);
 
         return $this->createResponse(
             Response::HTTP_CREATED,
             'New file created',
-            [ 'id' => $file->getId(), 'url' => $location ],
-            [ 'Location' => $location ]
+            [
+                'id'          => $file->getId(),
+                'put_url'     => $this->router->generate('file_upload_put_content', $parameters),
+                'delete_type' => 'DELETE',
+                'delete_url'  => $delete_url
+            ],
+            // On a pas de get pour l'instant, le DELETE et ce qui y ressemble le plus
+            [ 'Location' => $delete_url ]
         );
     }
 
     /**
-     * @Route("/{id}", name="file_upload_put")
+     * @Route("/{id}/content", name="file_upload_put_content")
      * @Method("PUT")
      * @param Request $request
      * @param UploadedFile $file
      */
-    public function putAction(Request $request, UploadedFile $file)
+    public function putContentAction(Request $request, UploadedFile $file)
     {
         $this->validateToken($request);
 
@@ -150,7 +154,7 @@ class UploadController extends Controller
                         'name'        => $file->getOriginalFilename(),
                         'type'        => $file->getMimeType(),
                         'size'        => $file->getSize(),
-                        'url'         => $this->router->generate('file_upload_get', $parameters),
+                        'url'         => $this->router->generate('file_upload_get_content', $parameters),
                         'delete_type' => 'DELETE',
                         'delete_url'  => $this->router->generate('file_upload_delete', $parameters),
                     ]
@@ -160,12 +164,12 @@ class UploadController extends Controller
     }
 
     /**
-     * @Route("/{id}", name="file_upload_get")
+     * @Route("/{id}/content", name="file_upload_get_content")
      * @Method("GET")
      * @param Request $request
      * @param UploadedFile $file
      */
-    public function getAction(Request $request, UploadedFile $file)
+    public function getContentAction(Request $request, UploadedFile $file)
     {
         $this->validateToken($request);
 
diff --git a/Resources/js/widget/file_upload.js b/Resources/js/widget/file_upload.js
index 19d428eafb697ddd9971a918fc9608e1f2c34bd0..3d402ef958961648683b7fc53ff95e7bd7185c76 100644
--- a/Resources/js/widget/file_upload.js
+++ b/Resources/js/widget/file_upload.js
@@ -106,7 +106,9 @@
                         { file: { name: file.name, size: file.size, type: file.type, lastModified: file.lastModified } },
                         function(response) {
                             if(response.status == 201) {
-                                data.url = response.url;
+                                data.url = response.put_url;
+                                data.delete_url = response.delete_url;
+                                data.delete_type = response.delete_type;
                                 data.jqXHR = $this.fileupload('send', data);
                             } else {
                                 file.error = response.message || ('Error #' + response.status);
@@ -132,8 +134,8 @@
             }
         )).bind({
             fileuploadfailed: function (e, data) {
-                if(data.url) {
-                    $.ajax(data.url, { type: 'DELETE' });
+                if(data.delete_url) {
+                    $.ajax(data.delete_url, { type: data.delete_type });
                 }
             },
             fileuploadadded: updateButtonVisibility,
diff --git a/Resources/views/Form/file_upload.html.twig b/Resources/views/Form/file_upload.html.twig
index 8bec7d57a101b3c3b00ea480dd46d4125bc100ab..15323aa6d0c9601cf9422703b390d928e1e7f7d0 100644
--- a/Resources/views/Form/file_upload.html.twig
+++ b/Resources/views/Form/file_upload.html.twig
@@ -36,7 +36,7 @@
                             <button class="btn btn-xs btn-danger delete" title="{% trans %}button.delete{% endtrans %}" {%- if disabled or read_only %} disabled="disabled"{% endif -%}>
                                 {{- irstea_icon('trash') -}}
                             </button>&nbsp;<span class="name">
-                                <a{% if file %} href="{{ path('file_upload_get', {id: file.id, token: csrfToken}) }}"{% endif %}>{{ file.originalFilename|default }}</a>
+                                <a{% if file %} href="{{ path('file_upload_get_content', {id: file.id, token: csrfToken}) }}"{% endif %}>{{ file.originalFilename|default }}</a>
                             </span>&nbsp;(<span class="size">
                                 {{- file.size|default -}}
                             </span>)