2016-08-04 4 views
-3

У меня есть некоторые проблемы здесь:Запустить файл PHP во время выполнения HTML

У меня есть index.html, который содержит загрузки функцию файл

У меня есть cleaning.php, это будет уборка каждая строка в файле

Итак, что я wa nt - если я запустил index.html, тогда загрузите файл, тогда он выполнит clean.php и вернет чистый файл в index.html Как я могу это сделать? Нужна ваша помощь :(

Это мой файл index.html:

<script> 
$(function testing (data) { 

    $("#upload").bind("click", function() { 
     // I want to pass this array to cleaning.php 
     $someArray[] = "stringFromCSVFile"; // must pass to cleaning.php 
    }); 
</script> 

Это мой cleaning.php файл:

$array = csvToArray("filecsv.csv"); //convert uploaded file to array 
callFuncA($array); 

functionA($array){ 
    return $something; 
} 
+1

Доля код с нами – Dave

+0

Я хотел бы использовать Ajax для того – Krapow

+0

Как» d вы ожидаете, что нам помогите или посмотрите, что вы сделали неправильно с 0 добавленным кодом: | – Option

ответ

-1

Это невозможно, AJAX не может прочитать содержимое загружено файлы.

Вы должны разместить форму загрузки в index.html и отправить ее на clean.php, который выполняет очистку в PHP и возвращает результат.

+0

Ajax может читать содержимое загруженного файла. http://stackoverflow.com/a/10899796/2893691 – Dave

+0

@Dave Он использует FormData, часть HTML5, что вызывает проблемы совместимости с IE <10. –

0

Вы можете попытаться использовать пост ajax для файлов таким образом, и вы можете внести изменения в clean.php в качестве своих требований и вернуть свой ответ index.html.

index.htmlфайл:

<form id="data" method="post" enctype="multipart/form-data"> 
    <input type="file" /> 
    <button type="submit">Submit</button> 
    <div id="response"></div> 
</form> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 
<script> 
var files; 
$('input[type=file]').on('change', prepareUpload); 
function prepareUpload(event){ 
    files = event.target.files; 
} 
$('form').on('submit', uploadFiles); 
function uploadFiles(event){ 
    event.stopPropagation(); 
    event.preventDefault(); 
    var data = new FormData(); 
    $.each(files, function(key, value){ 
     data.append(key, value); 
    }); 
    $.ajax({ 
     url: 'cleaning.php', 
     type: 'POST', 
     data: data, 
     cache: false, 
     dataType: 'json', 
     processData: false, 
     contentType: false, 
     success: function(data, textStatus, jqXHR){ 
      //Successfuly Uploaded 
      $('#response').html(JSON.stringify(data)); 
     }, 
     error: function(jqXHR, textStatus, errorThrown){ 
      $('#response').html('ERRORS: ' + textStatus); 
     } 
    }); 
} 
</script> 

cleaning.phpфайл:

<?php 
echo json_encode($_FILES); 
?> 
+0

Спасибо :), но когда я тестирую запуск кода, t дайте мне результат :( – jill182

+0

Вы можете легко запустить этот код, и вы можете очистить файл после загрузки в файле clean.php. –

+0

Фактически мое ограничение: файл, который может быть загружен, является только CSV-файлом. И я уже хранил эти строки csv в 'someArray []' в javascript и готов перейти на php. Есть ли еще одно решение для моего дела? – jill182

Смежные вопросы