上传大文件时出错3.3mb [英] error while uploading big files say 3.3mb

查看:103
本文介绍了上传大文件时出错3.3mb的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

[PHP]<?php

mysql_connect(" localhost"," XXX"," xxx")或者DIE(mysql_error());

mysql_select_db(" XXX")或DIE(无法选择db.mysql_error());

//我们的sql查询

$ str_sql1 ="从招标中选择Tnumber,其中Tnumber =''"。$ _ POST [''Tnumber'']。"''" ;;

$ res_id1 = mysql_query($ str_sql1);

$ rec_row = mysql_fetch_row($ res_id1);

$ rows = mysql_num_rows($ res_id1);

if($ rows> 0){


$ msg ="名称已存在!!< br>< INPUT Type = \" Button \" NAME = \" Back\"值= \" Back\"的onclick = \" history.back()\"类= \" button\">" ;

打印$ msg;

}否则{


?>

<? php

if($ _ FILES [''userfile''] [''size'']< 30000000)

{

$ fileName = $ _FILES [''userfile''] [''name''];

// echo $ fileName;

$ tmpName = $ _FILES [''userfile' '] [''tmp_name''];

// echo $ tmpName;

$ fileSize = $ _FILES [''userfile''] [''size'' ];

// echo $ fileSize;

$ fileType = $ _FILES [''userfile''] [''type''];

// echo $ fileType;

$ fp = fopen($ tmpName," rb");

$ content = fread($ fp, filesize($ tmpName)); //大文件错误

$ content = addslashes($ content);

/ * fclose($ fp); * /


if(!get_magic_quotes_gpc())

{

$ fileName = addslashes($ fileName);

}


$ date_arr = split(''[/:]'',$ _ POST [''已发布'']);

$ Posted = $ date_arr [2]。" - "。$ date_arr [1]。" - "。$ date_arr [0];


$ date_arr1 = split(''[/:]'',$ _ POST [''Expires'']);

$ Expires = $ date_arr1 [2]。" - " 。$ date_arr1 [1]。" - "。$ date_arr1 [0];

/ *

echo $ Posted;

echo $ Expires;

echo $ _POST [''Description''];

echo $ _POST [''Type''];

echo $ fileName;

* /


mysql_connect(" localhost"," XXX"," XXX")或DIE(mysql_error) ());


//选择数据库

mysql_select_db(" XXX")或DIE(无法选择数据库.mysql_error() );

$ query ="插入招标(Tnumber,Description,Posted,Expires,Name,Ty pe,Doc)VALUES(''"。$ _ POST [''Tnumber''] " '', '' " $ _ POST [ '' 描述 '']"。 ," $发布"," $过期"," $文件名"," ;. $ _POST [''Type'']。"'',''"。$ content。"'')" ;;


mysql_query($查询)或死(''错误,查询失败'');


require_once(''XXX.tpl'');


echo"< br> File $ fileName已上传< br>" ;;


}

}

?>

[/ PHP]


i我正在使用这个代码它对小文件非常有效但是当我上传大文件时它会在fopen线附近产生错误.. .can任何一个帮助

[PHP]<?php
mysql_connect("localhost", "XXX", "xxx") OR DIE (mysql_error());
mysql_select_db ("XXX") OR DIE ("Unable to select db".mysql_error());
// our sql query
$str_sql1="select Tnumber from Tenders where Tnumber = ''".$_POST[''Tnumber'']."''";
$res_id1=mysql_query($str_sql1);
$rec_row=mysql_fetch_row($res_id1);
$rows=mysql_num_rows($res_id1);
if($rows > 0){

$msg = "Name already exists!!<br><INPUT Type=\"Button\" Name=\"Back\" Value=\"Back\" onclick=\"history.back()\" class=\"button\">" ;
print $msg;
}else{

?>
<?php
if($_FILES[''userfile''][''size''] < 30000000 )
{
$fileName = $_FILES[''userfile''][''name''];
//echo $fileName;
$tmpName = $_FILES[''userfile''][''tmp_name''];
//echo $tmpName;
$fileSize = $_FILES[''userfile''][''size''];
//echo $fileSize;
$fileType = $_FILES[''userfile''][''type''];
//echo $fileType;

$fp= fopen($tmpName , "rb");
$content = fread($fp, filesize($tmpName));//error for big files
$content = addslashes($content);
/*fclose($fp);*/

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}

$date_arr=split(''[/ :]'',$_POST[''Posted'']);
$Posted=$date_arr[2]."-".$date_arr[1]."-".$date_arr[0];

$date_arr1=split(''[/ :]'',$_POST[''Expires'']);
$Expires=$date_arr1[2]."-".$date_arr1[1]."-".$date_arr1[0];
/*
echo $Posted;
echo $Expires;
echo $_POST[''Description''];
echo $_POST[''Type''];
echo $fileName;
*/


mysql_connect("localhost", "XXX", "XXX") OR DIE (mysql_error());

// select the db
mysql_select_db ("XXX") OR DIE ("Unable to select db".mysql_error());
$query = "insert into Tenders(Tnumber,Description,Posted,Expires,Name,Ty pe,Doc) VALUES (''".$_POST[''Tnumber'']."'',''".$_POST[''Description'']." '',''".$Posted."'',''".$Expires."'',''".$fileName."'',''". $_POST[''Type'']."'',''".$content."'')";


mysql_query($query) or die(''Error, query failed'');

require_once(''XXX.tpl'');

echo "<br>File $fileName uploaded<br>";

}
}
?>
[/PHP]

i am using this code it works very well for small files but as i upload big files it gives eror near the fopen line...can any one help on this

推荐答案

str_sql1 ="从招标中选择Tnumber,其中Tnumber =''"。
str_sql1="select Tnumber from Tenders where Tnumber = ''".


_POST [''Tnumber'']。"''" ;;
_POST[''Tnumber'']."''";


res_id1 = mysql_query(
res_id1=mysql_query(


这篇关于上传大文件时出错3.3mb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆