Этот код не работает (он имеет отношение к <input type = "file" />) - PullRequest
0 голосов
/ 20 августа 2009

Этот код должен работать в IE , но это не так. (Пожалуйста, даже не тестируйте его в Firefox, потому что я не буду использовать этот подход в нем.) Я открываю диалог, но теперь мне нужно отображать имя вложенного файла внутри промежутка всякий раз, когда пользователь делает свой выбор. Любая помощь?

<html>
<head>
  <title>example</title>    
  <script type="text/javascript" src="../js/jquery.js"></script>
  <script type="text/javascript">  
        $(document).ready( function(){            
      $("#attach").after("<input id='fakeAttach' type='button' value='attach a file' />");      
      $("#fakeAttach").click(function() {            
        $("#attach").click();        
        $("#maxSize").after("<div id='temporary'><span id='attachedFile'></span><input id='remove' type='button' value='remove' /></div>");        
        $('#attach').change(function(){
          $("#fakeAttach").attr("disabled","disabled");          
          $("#attachedFile").html($(this).val());
        });        
        $("#remove").click(function(e){
          e.preventDefault();
          $("#attach").replaceWith($("#attach").clone());
          $("#fakeAttach").attr("disabled","");
          $("#temporary").remove();
        });
      })
    }); 
  </script> 
</head>
<body>
  <input id="attach" type="file" /><span id="maxSize">(less than 1MB)</span>    
</body>
</html>

Ответы [ 2 ]

4 голосов
/ 20 августа 2009

Вы не можете получить доступ к элементам input = file из JavaScript по соображениям безопасности. JavaScript не позволяет читать файлы на диске пользователя, и ввод данных типа = файл позволяет вам это делать.

если вы разрешили людям доступ к файлам ввода с помощью javascript, ничто не помешает им скопировать ваш файл паролей и взломать его.

Я нашел эту статью , которая описывает безопасность JavaScript

0 голосов
/ 20 августа 2009

Вы не можете вызвать загрузку файла через JavaScript. Я знаю, ты должен быть в состоянии, ну хорошо. Есть решение - использовать непрозрачность: 0, чтобы «скрыть» ввод файла, поместить что-то под него, чтобы было похоже, что вы нажимаете на что-то еще.

PPK показывает, как это сделать, и проходит через все входы и выходы в блоге Quicks

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...