我正在创建一个脚本,用户可以将csv文件上传到表中。我从shotdev.com获得了教程,我得到了以下错误,我做错了什么?
**不允许使用以下命令:复制
不允许使用以下命令: fopen**
Page1.php
<form action="page2.php" method="post" enctype="multipart/form-data" name="form1">
<input name="fileCSV" type="file" id="fileCSV">
<input name="btnSubmit" type="submit" id="btnSubmit" value="Submit">
</form>Page2.php
<?
copy($_FILES["fileCSV"]["tmp_name"],"shotdev/".$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
include 'datalogin.php';
$objCSV = fopen("shotdev/".$_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO customer ";
$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."') ";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "Import completed.";
?>发布于 2011-12-08 10:20:21
这似乎是托管提供商施加的限制(他们似乎将fopen()和copy()放在了禁用函数的列表中,这是相当愚蠢的),在这种情况下,除了要求提供者放宽限制之外,您可能什么也做不了。
但是,通常情况下,您没有使用move_uploaded_file()正确地处理上传的文件。如手册链接中的示例所示,使用它。
发布于 2011-12-08 10:19:34
看起来您正在以安全模式运行PHP,或者禁用某些函数。出于安全原因,web主机经常禁用文件命令。
你可以和你的网络主机讨论你的需求--如果你问得好的话,有些可以灵活地为你启用这些功能。
否则,您必须在不使用禁用的文件命令的情况下实现它。一种方法是在textarea表单中创建一个粘贴CSV的HTML。将其SUbmit到您的MySQL脚本,然后运行MySQL导入。
希望这有帮助
https://stackoverflow.com/questions/8429360
复制相似问题