Bonjour à tous,

Alors voila, j'utilise le plugin JQuety File Upload pour uploader plusieurs images et je voudrais que lors de l'Upload de la photo, le nom de l'image s'insère dans la base de donnée. Jusque la pas de problème. Le problème viens du Bouton "Delete" . C'est lorsque je veux supprimer l'image de la base qu'une erreur "DELETE http://localhost/jQuery-File-Upload-master/fonctions/?file=LogoParis13tt%20%281%29.jpg"
Je ne comprend pas pourquoi le chemin lors de l'insertion de l'image dans le dossier est le bon et lors de la suppression le mauvais...

En faite j'ai un peu modifier le code du constructeur pour faire en sorte de récupérer une url via une liste déroulante qui selon le choix va vers tel ou tel dossier.
Alors dans le formulaire j'ai ajouté ce code
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<select size=1 name="url">
	<option value=1>Gallerie 1</option>
	<option value=2>Gallerie 2</option>
</select>

Puis ensuite je récupère en POST la valeur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
if(isset($url))
{
	$lien = '/../img/gallerie1/';
	if($url == 2)
	{
		$lien = '/../img/gallerie2/';
	}
	$upload_handler = new UploadHandler($lien);
}
J'ai donc modifier le constructeur de UploadHandler afin de faire en sorte qu'il prenne en compte une url en parametre et je l'insert dans la ligne 'upload_dir' et 'upload_url' :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 function __construct($url = null, $options = null, $initialize = true, $error_messages = null) {
        $this->options = array(
			'database' => 'siterencontres',  
			'host' => 'localhost',  
			'username' => 'root',  
			'password' => '',  
            'script_url' => $this->get_full_url().'/',
            'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).$url,
            'upload_url' => $this->get_full_url().$url,
            'user_dirs' => false,
            'mkdir_mode' => 0755,
            'param_name' => 'files',
            // Set the following option to 'POST', if your server does not support
            // DELETE requests. This is a parameter sent to the client:
            'delete_type' => 'DELETE',
            'access_control_allow_origin' => '*',
            'access_control_allow_credentials' => false,
            'access_control_allow_methods' => array(
                'OPTIONS',
                'HEAD',
                'GET',
                'POST',
                'PUT',
                'PATCH',
                'DELETE'
            ),
            'access_control_allow_headers' => array(
                'Content-Type',
                'Content-Range',
                'Content-Disposition'
            ),
            // Enable to provide file downloads via GET requests to the PHP script:
            'download_via_php' => false,
            // Defines which files can be displayed inline when downloaded:
            'inline_file_types' => '/\.(gif|jpe?g|png)$/i',
            // Defines which files (based on their names) are accepted for upload:
            'accept_file_types' => '/.+$/i',
            // The php.ini settings upload_max_filesize and post_max_size
            // take precedence over the following max_file_size setting:
            'max_file_size' => null,
            'min_file_size' => 1,
            // The maximum number of files for the upload directory:
            'max_number_of_files' => null,
            // Image resolution restrictions:
            'max_width' => null,
            'max_height' => null,
            'min_width' => 1,
            'min_height' => 1,
            // Set the following option to false to enable resumable uploads:
            'discard_aborted_uploads' => true,
            // Set to true to rotate images based on EXIF meta data, if available:
            'orient_image' => false,
            'image_versions' => array(
                // Uncomment the following version to restrict the size of
                // uploaded images:
                /*
                '' => array(
                    'max_width' => 1920,
                    'max_height' => 1200,
                    'jpeg_quality' => 95
                ),
                */
                // Uncomment the following to create medium sized images:
                /*
                'medium' => array(
                    'max_width' => 800,
                    'max_height' => 600,
                    'jpeg_quality' => 80
                ),
                */
                'thumbnail' => array(
                    'max_width' => 80,
                    'max_height' => 80
                )
            )
        );
Donc tout marche bien, j'ai crée une fonction delete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
function delete_img($delimg)  
	{  
		$delete_from_db = $this->query("DELETE FROM images WHERE url = '$delimg'") or die(mysql_error());  
		return $delete_from_db;  
	}
et enfin la fonction qui permet d’appeler la fonction delete_img :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 public function delete($print_response = true) 
	{
        $file_name = $this->get_file_name_param();
        $file_path = $this->get_upload_path($file_name);
        $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path);
        if ($success) 
		{
			$this->delete_img($file_name);
            foreach($this->options['image_versions'] as $version => $options) {
                if (!empty($version)) {
                    $file = $this->get_upload_path($file_name, $version);
                    if (is_file($file)) {
                        unlink($file);
                    }
                }
            }
        }
        return $this->generate_response(array('success' => $success), $print_response);
    }
Voila donc tout ce passe bien lors de l'insertion(dans la base et dans le bon dossier) mais impossible de supprimer..

Si vous voulez plus de code demandé moi.

Merci pour votre aide.