【发布时间】:2012-06-23 00:24:22
【问题描述】:
我创建了一个管理页面来将 csv 文件上传到 mysql。文件 csv 的大小为 59.9mb。但是我的脚本没有将文件上传到mysql。你介意帮我解决这个问题吗?这是我的代码:
<HTML>
<HEAD>
<TITLE> Admin Update </TITLE>
</HEAD>
<BODY>
<form enctype='multipart/form-data' action="<?php echo $PHP_SELF ?>" method='post'>
<font face=arial size=2>Type file name to import:</font><br>
<input type='file' name='filename' size='20'><br>
<input type='submit' name='submit' value='submit'></form>
<?php
include("phpsqlajax_dbinfo.php");
$connection = mysql_connect ('127.0.0.1', $username, $password);
if (!$connection) { die('Not connected : ' . mysql_error());}
$db_selected = mysql_select_db("ipcoba", $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
if(isset($_POST['submit']))
{
// address to copy csv file
$target_path = "C:/xampp/htdocs/bikinwebtracert";
$target_path = $target_path . basename( $_FILES['filename']['name']);
if(move_uploaded_file($_FILES['filename']['tmp_name'], $target_path)) {
echo "<font face=arial size=2>The file ". basename( $_FILES['filename']['name']). " Upload Success</font><br>";
} else{
echo "<font face=arial size=2>Failed to Upload, Please try again</font><br>";
}
$filename=$target_path;
$load=mysql_query("LOAD DATA LOCAL INFILE $filename INTO TABLE CityBlocks FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 2 LINES (startIpNum, endIpNum, locId)'\n' ") or die(mysql_error());
if ($load){
echo("Failed");
} else {
echo("Success");
}
}
?>
</BODY>
</HTML>
我需要尽快解决这个问题。请帮忙。谢谢。
【问题讨论】:
-
是的,我们需要查看您遇到的错误。但是我的第一个猜测是,您只需将 post_max_size 的 ini 设置增加到默认值 8M 以上,这样您的 60M 文件就可以通过了。
-
没有错误。但是文件没有上传。有什么问题吗?
-
@RyanLaBarre,我已经更改了 php.ini 中的默认大小。但它仍然没有工作。如何解决这个问题?
-
首先隔离错误:究竟什么不起作用?你的代码有多远一切正常?文件上传了吗?当您知道错误发生在哪一行时,找出问题所在并修复它!确保您启用了错误日志记录。
-
在检查提交后(“//提交 csv 的地址”附近),添加 print_r($_FILES) - 将该输出添加到您的问题中。