導航:首頁 > 編程語言 > geterrorphp

geterrorphp

發布時間:2022-10-01 01:20:57

A. php伺服器文件上傳大小被限制如何修改

  1. 打開php.ini,

    首先找到file_uploads = on
    ;是否允許通過HTTP上傳文件的開關。默認為ON即是開
    upload_tmp_dir
    ;文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
    upload_max_filesize = 8m
    ;即允許上傳文件大小的最大值。默認為2M
    post_max_size = 8m
    ;指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
    一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網路正常的情況下。但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。

  2. 進一步配置以下的參數
    max_execution_time = 600
    ;每個PHP頁面運行的最大時間值(秒),默認30秒
    max_input_time = 600
    ;每個PHP頁面接收數據所需的最大時間,默認60秒
    memory_limit = 8m
    ;每個PHP頁面所吃掉的最大內存,默認8M
    把上述參數修改後,在網路所允許的正常情況下,就可以上傳大體積文件了
    max_execution_time
    = 600
    max_input_time = 600
    memory_limit = 32m
    file_uploads =
    on
    upload_tmp_dir = /tmp
    upload_max_filesize = 32m
    post_max_size =
    32m

B. php 怎麼正確輸出js中$up->getErrorMsg()方法的信息

echo"<script>alert('{$up->getErrorMsg()}');</script>";

或者

echo'<script>alert("'.$up->getErrorMsg().'");</script>';

C. Thinkphp怎麼開啟詳細錯誤提示而不是出現哭臉

下面是文檔例子:$User=D("User");//實例化User對象if(!$User->create()){//如果創建失敗表示驗證沒有通過輸出錯誤提示信息exit($User->getError());}else{//驗證通過可以進行其他數據操作}你用的這個方法$user->getDbError()不對吧。

D. php上傳文件提示成功但沒有存進資料庫

$sql="insert into t_file(f_title,f_remark,f_file,f_upload_time) values('$title','$remark','$file',now())";
這里的now()是取當前時間么?沒用過這個方法,貌似php手冊裡面也沒有哦,不知道是不是你自定義的,如果不是的話,應該報錯的,直接用time()吧。

E. php調用webservice,nusoap出錯

改成$client = new soapclient('http://localhost/nusoap/nusoap_server1.php?WSDL');

F. ThinkPHP自動驗證錯誤結果如何ajax到前台

if(!$this->User->create()){
//如果創建失敗表示驗證沒有通過輸出錯誤提示信息
$this->error($this->User->getError());
}
$.ajax({
url:"",
type:'POST',
dataType:'json',
data:{},
success:function(data){
if(data.status){
alert(data.info);
}else{
alert(data.info);
}
}
});

G. PHP報錯GET方式傳值問題、

$id = $_GET['id']; 在賦值錢使用isset檢查下

另外你說的這些無助與你的問題,
你可以通過index.php?id=1直接打開那個頁面來測試,跟他是否是a標簽沒太大關系

H. 請問PHP中同一個類中怎麼訪問不同方法的變數

PHP中同一個類中怎麼訪問不同方法的變數,我覺得這要看你訪問的變數的作用范圍,如果這個變數的作用范圍是類,那麼只要是同一個類里的方法,都可以訪問。

如果這個變數的作用范圍只在類的方法里,則可以採取的辦法:

1. 修改或定義變數的作用域為全局。
2. 拆分方法,將變數的結果作為一個結果返回。

I. php 編寫 實現上傳圖片至伺服器的函數

<?php
classFileUpload{
private$filepath;//指定上傳文件保存的路徑
private$allowtype=array("gif","jpg","jpeg","png");//允許上傳文件的類型
private$maxsize=1000000;//允許上傳文件的最大值
private$israndname=true;//是否隨機重命名,
private$originName;//源文件名字
private$tmpFileName;//臨時文件名字
private$fileType;//上傳後的文件類型,主要是文件後綴名
private$fileSize;//文件尺寸
private$newFileName;//新文件名字
private$errorName=0;//錯誤號
private$errorMess="";//用來提供錯誤報告
//用於對上傳文件初始化
//指定上傳路徑2·允許的類型3·限制大小4·是否使用隨機文件名稱
//讓用戶可以不用換位置傳參數,後面參數給值不用按照位置或者必須有值
function__construct($options=array()){
foreach($optionsas$key=>$val){
$key=strtolower($key);
//查看用戶參數中的數組下標是否和成員屬性名相同
//get_class_vars(get_class($this))得到類屬性的數組
//如果$key下標不在這個類屬性的數組中,則退出for循環
if(!in_array($key,get_class_vars(get_class($this)))){
continue;
}
$this->setOption($key,$val);
}
}
privatefunctionsetOption($key,$val){
//讓實例化後獲取過來的數組下標=數組下標的值,這里即為構造函數初始化
//構造函數中調用,等於把所有屬性初始化,將來可以直接訪問
$this->$key=$val;
}

privatefunctiongetError(){
$str="上傳文件{$this->originName}時出錯";
switch($this->errorNum){
case4:$str.="沒有文件被上傳";
break;
case3:$str.="文件只有部分上傳";
break;
case2:$str.="上傳文件超過了表單的值";
break;
case1:$str.="上傳文件超過phpini的值";
break;
case-1:$str.="未允許的類型";
break;
case-2:$str.="文件過大上傳文件不能超過{$this->maxsize}位元組";
break;
case-3:$str.="上傳文件失敗";
break;
case-4:$str.="建立存放上傳文件目錄失效,請重新上傳指定目錄";
break;
case-5:$str.="必須指定上傳文件的路徑";
break;
default:$str.="未知錯誤";
}
return$str.'<br>';
}
//用來檢查文件上傳路徑
privatefunctioncheckFilePath(){
if(empty($this->filepath)){
$this->setOption("errorNum",-5);
returnfalse;
}
if(!file_exists($this->filepath)||!is_writable($this->filepath)){
if(!@mkdir($this->filepath,0755)){
$this->setOption("errorNum",-4);
returnfalse;
}
}
returntrue;
}
//用來檢查上傳文件尺寸大小

privatefunctioncheckFileSize(){
if($this->fileSize>$this->maxsize){
$this->setOption("errorNum",-2);
returnfalse;
}else{
returntrue;
}
}

//用來檢查文件上傳類型
privatefunctioncheckFileType(){
if(in_array(strtolower($this->fileType),$this->allowtype)){
returntrue;
}else{
//如果$this->fileType這個類型不在$this->allowtype這個數組中,則把錯誤號變成-1
$this->setOption("errorNum",-1);
returnfalse;
}
}
privatefunctionsetNewFileName(){
if($this->israndname){
$this->setOption("newFileName",$this->preRandName());
}else{
$this->setOption("newFileName",$this->originName);
}
}
//用於檢查文件隨機文件名
privatefunctionpreRandName(){
$fileName=date("Ymdhis").rand(100,999);
return$fileName.".".$this->fileType;
}
//用來上傳一個文件

functionuploadFile($fileField){
//檢查文件路徑
$return=true;
if(!$this->checkFilePath()){
$this->errorMess=$this->getError();
returnfalse;
}//獲取文件信息
$name=$_FILES[$fileField]['name'];
$tmp_name=$_FILES[$fileField]['tmp_name'];
$size=$_FILES[$fileField]['size'];
$error=$_FILES[$fileField]['error'];
if(is_array($name)){//判斷獲取過來的文件名字是否為數組
$errors=array();//如果為數組則設置為一個數組錯誤號
for($i=0;$i<count($name);$i++){
//循環每個文件即每個類屬性賦值或者說初始化屬性值或者初始化構造函數
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
if(!$this->checkFileSize()||!$this->checkFileType()){
//如果上面尺寸或者類型不對,則調用這個錯誤信息
$errors[$i]=$this->getError();
$return=false;
}
}else{
//這里是
$error[]=$this->getError();
$return=false;
}
if(!$return)
$this->setFiles();
}

if($return){
$fileNames=array();
for($i=0;$i<count($name);$i++){
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
$this->setNewFileName();
if(!$this->File()){
$errors=$this->getError();
$return=false;
}else{
$fileNames[$i]=$this->newFileName;
}
}

}
$this->newFileName=$fileNames;
}

$this->errorMess=$errors;
return$return;


}else{

//看看$name,$tmp_name,$size,$error這些是否賦值成功否則返回FALSE
if($this->setFiles($name,$tmp_name,$size,$error)){
//看看文件大小尺寸是否匹配,不匹配返回FALSE
if($this->checkFileSize()&&$this->checkFileType()){
//獲取新文件名
$this->setNewFileName();
if($this->File()){
returntrue;
}else{
returnfalse;
}
}else{
$return=false;
}
}else{
$return=false;
}
if(!$return){
$this->errorMess=$this->getError();
return$return;
}
}

}

functionFile(){//將文件從臨時目錄拷貝到目標文件夾
if(!$this->errorNum){
//如果傳遞來的路徑有斜杠,則刪除斜杠再加上斜杠
//./upload+./
$filepath=rtrim($this->filepath,'/').'/';
//./upload+./+加上隨機後的新文件名和後綴
//這里指創建一個新的$filepath.這個文件像佔位符但是為空的
$filepath.=$this->newFileName;
//嘗試著把臨時文件$this->tmpFileName移動到$filepath下哪裡覆蓋原來的這個文件
if(@move_uploaded_file($this->tmpFileName,$filepath)){
returntrue;
}else{
$this->setOption('errorNum',-3);
returnfalse;
}
}else{
returnfalse;
}
}
//這里是為了其他剩餘的屬性進行初始化操作!
privatefunctionsetFiles($name="",$tmp_name="",$size=0,$error=0){
//這里給錯誤號賦值
$this->setOption("errorNum",$error);
//如果這里有錯誤,直接返回錯誤
if($error){
returnfalse;
}
$this->setOption("originName",$name);//復制名字為源文件名
$this->setOption("tmpFileName",$tmp_name);
$arrstr=explode(".",$name);//按點分割文件名,
//取分割後的字元串數組最後一個並轉換為小寫,賦值為文件類型
$this->setOption("fileType",strtolower($arrstr[count($arrstr)-1]));
$this->setOption("fileSize",$size);
returntrue;
}
//用來獲取上傳後的文件名
functiongetNewFileName(){
return$this->newFileName;
}

//上傳失敗,後則返回這個方法,就可以產看報告
functiongetErrorMsg(){
return$this->errorMess;
}
}
?>


============================調用====================================


<?php
require("FileUpload.class.php");
//這里實例化後賦值為數組,數組的下標要對應類中屬性的值,否則不能傳遞值,可以不分先後但是必須一致
$up=newFileUpload(array('israndname'=>'true',"filepath"=>"./upload/",'allowtype'=>array('txt','doc','jpg','gif'),"maxsize"=>1000000));
echo'<pre>';

if($up->uploadFile("pic")){
print_r($up->getNewFileName());
}else{
print_r($up->getErrorMsg());
}
echo'<pre>';
?>


-------------------HTML-------------------------
<html>
<head>
<metahttp-quive="content-type"content="text/html;charset=utf-8"></meta>
</head>
<body>
<formaction="upload.php"method="post"enctype="multipart/form-data">
shoppic:<inputtype="file"name="pic[]"><br>

<inputtype="hidden"name="MAX_FILE_SIZE"value="1000000">
<inputtype="submit"name="sub"value="添加商品">
</form>
</body>

</html>

-------------------或者HTML-------------------------

<html>
<head>
<metahttp-quive="content-type"content="text/html;charset=utf-8"></meta>
</head>
<body>
<formaction="upload.php"method="post"enctype="multipart/form-data">
//區別在這里
shoppic:<inputtype="file"name="pic[]"><br>
shoppic:<inputtype="file"name="pic[]"><br>
shoppic:<inputtype="file"name="pic[]"><br>
<inputtype="hidden"name="MAX_FILE_SIZE"value="1000000">
<inputtype="submit"name="sub"value="添加商品">
</form>
</body>

</html>
=====================================================================



以上是自己總結的 還沒有怎麼精簡加工過,僅供參考

以上不止可以上傳圖片,可以上自定義任何文件

閱讀全文

與geterrorphp相關的資料

熱點內容
兩台電腦使用代理伺服器怎麼連接 瀏覽:230
初創公司買什麼配置的雲伺服器 瀏覽:165
程序員的實力測試 瀏覽:509
手機版寶可夢模組的伺服器怎麼進 瀏覽:118
qt在arm上編譯過程 瀏覽:124
黑白命令在哪裡 瀏覽:22
演算法崗問面試官的問題 瀏覽:117
720pjpg壓縮 瀏覽:525
經濟學人app怎麼用 瀏覽:734
thunderbird如何刪除伺服器 瀏覽:632
編譯內核模塊准備工作 瀏覽:187
protues單片機 瀏覽:680
淘寶想多開店怎麼租伺服器 瀏覽:581
小鹿情感app怎麼打不開了 瀏覽:325
可自編譯的C 瀏覽:63
vfl90壓縮機是哪個廠家 瀏覽:678
安卓系統游戲怎麼開發 瀏覽:410
抖助力app綁定的銀行卡怎麼辦 瀏覽:467
我的電腦文件夾打開方式 瀏覽:931
東莞加密u盤公司 瀏覽:138