Dateibrowser mit Ordnerangabe

tklustig

Erfahrenes Mitglied
Hallo Leute,
folgendes Skript zeigt einen Dateibrowser mit Angabe der selektierten Datei an. Ich aber möchte die Anzeige der selektierten Datei zuzüglich des absoluten Dateipfades. Wie erweitere ich den Code. Habe es mit f.folder versucht, das funktioniert aber nicht:
HTML:
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
  function handleFileSelect(evt) {
    var files = evt.target.files;
    var output = [];
    for (var i = 0, f; f = files; i++) {
      output.push('<li><strong>', ersetzen(f.name), '</strong> (', f.type || 'n/a', ') - ',
                  f.size, ' bytes, last modified: ',
                  f.lastModifiedDate.toLocaleDateString(), '</li>');
    }
    document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
  }
  document.getElementById('files').addEventListener('change', handleFileSelect, true);
 
  function ersetzen(begriff){
    const umlaut = ['Ä','Ö','Ü','ä','ö','ü','ß'];
    const _umlaut = ['Ae','Oe','Ue','ae','oe','ue','ss'];
    for(var k=0;k<umlaut.length;k++){
        for(var i=0;i<begriff.length;i++){
            if(begriff==umlaut)
                begriff=begriff.replace(begriff, _umlaut);
        }
    }
  return begriff;
  }
</script>
 
Zuletzt bearbeitet von einem Moderator:
Bullshit. Ich beabsichtige, WORD durch die php-Funktion exec starten zu lassen. Dazu benötige ich allerdings die Installationsangabe. Wie bekomme ich das hin. Hier der Code:
public function actionConvertvoice() { $DynamicModel = new DynamicModel(['url1', 'url2']); $DynamicModel->addRule(['url1', 'url2'], 'string'); $DynamicModel->addRule(['url1', 'url2'], 'required'); if ($DynamicModel->load(Yii::$app->request->post())) { exec($DynamicModel->url1); exec($DynamicModel->url2); } else return $this->render('convertvoice', ['DynamicModel' => $DynamicModel]); }
<?php use yii\helpers\Html; use kartik\widgets\ActiveForm; $form = ActiveForm::begin([ 'options' => ['enctype' => 'multipart/form-data'], 'id' => 'dynamic-form', 'type' => ActiveForm::TYPE_VERTICAL, 'formConfig' => [ 'showLabels' => false ]]); ?> <center><h2>Sprachaufnahme vorbereiten</h2></center> <div class="container"> <div class="row"> <br><br> <div class="col-md-6"> <input type="file" id="files" name="files[]" multiple /> </div> <div class="col-md-6"> <input type="file" id="_files_" name="files[]" multiple /> </div> <div class="col-md-12"><br></div> <div class="col-md-12"> <?= $form->field($DynamicModel, 'url1', ['addon' => [ 'prepend' => ['content' => 'URL-Speech2Text']]])->textInput(['id' => 'cke_Text']) ?> </div> <div class="col-md-12"> <?= $form->field($DynamicModel, 'url2', ['addon' => [ 'prepend' => ['content' => 'URL-Textverarbeitungsprogramm']]])->textInput(['id' => '_cke_Text_']) ?> </div> <div class="col-md-12"> <div class="form-group"> <?= Html::submitButton('Create', ['class' => 'btn btn-primary']) ?> <?= Html::a(Yii::t('app', 'Cancel'), ['/pa-therapiebericht/index'], ['class' => 'btn btn-danger']) ?> </div> </div> </div> </div> <?php ActiveForm::end(); ?> <?php $script = <<< JS function handleFileSelect(evt) { var files = evt.target.files; for (var i = 0, f; f = files[i]; i++) { $('#cke_Text').val(f.name+' '+f.size+'Bytes'); } } function handleFilesSelect(evt) { var files = evt.target.files; for (var i = 0; f = files[i]; i++) { var tmppath = URL.createObjectURL(f); console.log(tmppath); $('#_cke_Text_').val(f.name+' '+f.size+'Bytes'); } } document.getElementById('files').addEventListener('change', handleFileSelect, true); document.getElementById('_files_').addEventListener('change', handleFilesSelect, true); /*function ersetzen(begriff) { const umlaut = ['Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', 'ß']; const _umlaut = ['Ae', 'Oe', 'Ue', 'ae', 'oe', 'ue', 'ss']; for (var k = 0; k < umlaut.length; k++) { for (var i = 0; i < begriff.length; i++) { if (begriff[i] == umlaut[k]) begriff = begriff.replace(begriff[i], _umlaut[k]); } } return begriff; }*/ JS; $this->registerJS($script); ?>
 
Zurück