Puncte:0

Cum pot suprascrie fișierul existent și păstrează același nume de fișier atunci când încarc un fișier nou

drapel bm

Am conținut de tip „Document” și am adăugat câmpul „Încărcare document” cu tipul „Fișier” Vreau să înlocuiesc fișierul și să actualizez nodul. Folosesc codul de mai jos

funcția custom_file_upload_form_alter(&$form, $form_state, $form_id) {
  if($form_id == "test_node_form") {
    $form['#submit'][] = 'custom_fileupload_submit';
  }
}

funcția custom_fileupload_submit(&$form, &$form_state) {
 $file = file_save_upload('field_document', array(
    'file_validate_extensions' => array('pdf'), // Validați extensiile.
    „public://”, FILE_EXISTS_REPLACE
  ));
  dacă ($fișier) {
    // Mută ​​fișierul, în sistemul de fișiere Drupal
    dacă ($file = file_move($fișier, „public://”, FILE_EXISTS_REPLACE)) {
      // Salvați fișierul pentru utilizare în handler-ul de trimitere.
      $form_state['storage']['file'] = $fișier;
    }
    else {
      form_set_error('fișier', t('Nu s-a putut scrie fișierul încărcat în folderul de fișiere al site-ului.'));
    }
  }
  else {
    form_set_error('fișier', t('Nu a fost încărcat niciun fișier.'));
  }
}

Aici file_save_upload() nu funcționează. Am depanat variabila $file, dar nu imprimă nimic.

drapel cn
Priviți mai atent apelul dvs. la `file_save_upload`. Este probabil că nu ați vrut să includeți destinația și constanta ca parte a matricei de validare
drapel bm
„field_document” este numele câmpului fișierului este corect?
Puncte:1
drapel ru

Puteți folosi doar Încărcați fișier Înlocuire modul pentru a rezolva acest caz de utilizare în loc de cod personalizat:

Acesta este un mic modul utilitar care oprește automat Drupal să redenumească fișierele noi încărcate prin filefield CCK. Când există 2 fișiere cu același nume, fișierele mai vechi vor fi redenumite.

drapel bm
Da, am încercat acest modul, nu funcționează cu o altă funcționalitate legată de încărcarea fișierelor. Există vreo altă modalitate de a face prin modul personalizat?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.