2016-06-10 4 views
-3

Я загружаю один файл csv на сервер. Файл считывает данные и сохраняет их в базу данных, но проблема с моим сервером - это максимальное время выполнения 180 секунд. Я не могу загрузить все свои данные в csv за 180 секунд. Сервер показывается как «Услуга недоступна» через 180 секунд. Поэтому я решил завершить загрузку csv в фоновом режиме. Я пробовал несколько плагинов, но я получаю ошибки, такие как плагин, который не найден, и несколько других. Мне нужно решение в трюме . Заранее спасибоЗагрузить файл csv в фоновом режиме

+1

«загрузка в фоновом режиме» - это не вещь (если вы не имеете в виду, например, FTP). Uploading и _processing_ в фоновом режиме - вещь, но очень широкая тема. – AD7six

ответ

-1

Вы можете продлить время выполнения следующим образом.

ini_set('max_execution_time', 600); //600 seconds = 10 minutes 

Поместите это в начало сценария загрузки CSV. Вы можете изменить второй параметр в соответствии с вашими потребностями.

+0

Максимальное время работы сервера - 180 секунд. Я уже пробовал этот путь. Спасибо за ваше предложение. – Prasanna

0

Сомневаюсь, что сама загрузка занимает 180 секунд. Вы должны переосмыслить свой дизайн и сначала собрать данные, а затем записать их в базу данных, возможно, используя объемную вставку, если она доступна в cakephp.

+0

Мой файл csv имеет 7000 строк. Я сохраняю значения в базе данных с помощью ответа api. – Prasanna

-1

Шаг 1 - База данных Подключение

Сначала необходимо подключиться к базе данных ... Имя файла: connection.php

<?php 
$db = mysql_connect("Database", "username", "password") or die("Could not connect."); 

if(!$db) 

    die("no db"); 

if(!mysql_select_db("Databasename",$db)) 

    die("No database selected."); 
?> 

Шаг 2 - страница загрузки

Создание подключения к данным базы, вызвав connection.php, очистите таблицу своих старых данных, вставьте новые загруженные данные в таблицу ... Имя файла: upload.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Upload page</title> 
<style type="text/css"> 
body { 
    background: #E3F4FC; 
    font: normal 14px/30px Helvetica, Arial, sans-serif; 
    color: #2b2b2b; 
} 
a { 
    color:#898989; 
    font-size:14px; 
    font-weight:bold; 
    text-decoration:none; 
} 
a:hover { 
    color:#CC0033; 
} 

h1 { 
    font: bold 14px Helvetica, Arial, sans-serif; 
    color: #CC0033; 
} 
h2 { 
    font: bold 14px Helvetica, Arial, sans-serif; 
    color: #898989; 
} 
#container { 
    background: #CCC; 
    margin: 100px auto; 
    width: 945px; 
} 
#form   {padding: 20px 150px;} 
#form input  {margin-bottom: 20px;} 
</style> 
</head> 
<body> 
<div id="container"> 
<div id="form"> 

<?php 

include "connection.php"; //Connect to Database 

$deleterecords = "TRUNCATE TABLE tablename"; //empty the table of its current records 
mysql_query($deleterecords); 

//Upload File 
if (isset($_POST['submit'])) { 
    if (is_uploaded_file($_FILES['filename']['tmp_name'])) { 
     echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; 
     echo "<h2>Displaying contents:</h2>"; 
     readfile($_FILES['filename']['tmp_name']); 
    } 

    //Import uploaded file to Database 
    $handle = fopen($_FILES['filename']['tmp_name'], "r"); 

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $import="INSERT into tablename(item1,item2,item3,item4,item5) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')"; 

     mysql_query($import) or die(mysql_error()); 
    } 

    fclose($handle); 

    print "Import done"; 

    //view upload form 
}else { 

    print "Upload new csv by browsing to file and clicking on Upload<br />\n"; 

    print "<form enctype='multipart/form-data' action='upload.php' method='post'>"; 

    print "File name to import:<br />\n"; 

    print "<input size='50' type='file' name='filename'><br />\n"; 

    print "<input type='submit' name='submit' value='Upload'></form>"; 

} 

?> 

</div> 
</div> 
</body> 
</html> 
+0

Я хочу вставить данные в новые строки на заднем плане. у моего csv 7000 строк. – Prasanna

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