PDOException auf Doppelte Dateinamen in Drupal 7

Verwenden Sie den folgenden code:

foreach ($form_state['values']['uploads'] as $key => $value) {
if (strlen($value)) {
  $file = file_save_upload($key, array(
    'file_validate_is_image' => array(), //Validates file is really an image. 
    'file_validate_extensions' => array('png gif jpg jpeg'), //Validate extensions.
  ));
  //If the file passed validation:
  if ($file) {
    //Move the file, into the Drupal file system
    if ($file = file_move($file, 'public://')) {
     //Save the file for use in the submit handler.
     $form_state['values']['uploaded_photos'][] = $file;
             $x++;
    } else {
     form_set_error($key, t('Failed to write the uploaded file the site\'s file folder.'));
    }
  }
}

}

Ich versuche zu speichern, Bilder anbei, um eine form in der ein Cache-Objekt mit CTools. All das war in Ordnung arbeiten, bis ich versuchte, das hochladen der gleichen Datei wieder ab, und ich habe einen weißen Bildschirm, der sagte: "Fehler - Die website ist ein Fehler aufgetreten." (Riss von watchdog):

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'public://ad-10.jpg'; for key 2: UPDATE {file_managed} SET uid=:db_update_placeholder_0, filename=:db_update_placeholder_1, uri=:db_update_placeholder_2, filemime=:db_update_placeholder_3, filesize=:db_update_placeholder_4, status=:db_update_placeholder_5, timestamp=:db_update_placeholder_6
WHERE  (fid = :db_condition_placeholder_0) ; Array
(
[:db_update_placeholder_0] => 0
[:db_update_placeholder_1] => ad-10.jpg
[:db_update_placeholder_2] => public://ad-10.jpg
[:db_update_placeholder_3] => image/jpeg
[:db_update_placeholder_4] => 4912
[:db_update_placeholder_5] => 0
[:db_update_placeholder_6] => 1326221376
[:db_condition_placeholder_0] => 834
)
";s:9:"%function";s:21:"drupal_write_record()";

Da bin ich nicht die Einstellung $ersetzen argument, sollte es nicht standardmäßig FILE_EXISTS_RENAME und deshalb nicht diesen Fehler auslösen? Wie kann ich dies beheben?

InformationsquelleAutor Kevin | 2012-01-10
Schreibe einen Kommentar