php上傳txt
A. IIS+php可以創建txt文件並寫入數據,但是不能上傳txt到指定目錄,該如何解決
<?php
$file_path='./upload';
if(!is_dir($file_path))mkdir($file_path);
$picture_name=$_FILES['u_file']['name'];
$picture_name=substr($picture_name,-4,4);
if($picture_name!=".txt"){
echo"<script>alert('上傳文本格式不正確,請重新上傳');window.location.href='index.php';</script>";
die();
}
file_put_contents($file_path.'2.txt','helloworld',LOCK_EX);
chmod($file_path.'2.txt',0777);
move_uploaded_file($picture_name,$file_path.'1'.$picture_name);
echo$file_path.'1'.$picture_name.'<br>';
if(is_file($file_path.$picture_name)){
echo'succeed';
}else{
echo'failed';
}
幫你重寫了,你看看吧
B. php製作一個表單頁面,包含兩個文件選擇框,一個用於上傳.txt文件,另一個用於上傳.j
兩個input
命名就用時間戳
C. 求PHP網頁上傳文件代碼.
自定義文件上傳函數
:
<?php
/**
* 文件上傳
*/
/**
* 文件上傳函數
* @param $name string 表單上傳框的name值
* @param $file_arr array 上傳文件的類型限制
* @param $filesize int 上傳文件限制其大小
* @param $path string 文件的保存路徑
* @return string 成功返回 "上傳成功及文件名"
*/
function uploads($name,$file_arr=array('jpg','png','gif','JPG','GIF','PNG'),$filesize=3145728,$path='uploads'){
//1、檢測文件的錯誤信息,如果是0 就允許上傳(保存)
$err=$_FILES[$name]['error'];
if($err>0){
if($err==1){
return '上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。';
}elseif($err==2){
return '上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。 ';
}elseif($err==3){
return '文件只有部分被上傳。';
}elseif($err==4){
return'沒有文件上傳';
}elseif($err>=5){
return '其他錯誤';
}
}
//2、檢測文件的類型,是否是我們需要的(png、gif、jpg)
$pre=pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);
if(!in_array($pre,$file_arr)){
return '上傳的文件類型不符';
}
//3、檢測文件大小
if($_FILES[$name]['size']>$filesize){
return '上傳的文件太大';
}
//4、保存文件
$file_name=date('YmdHis',time()).mt_rand(1000,9999).'.'.$pre;
if(is_uploaded_file($_FILES[$name]['tmp_name'])){
move_uploaded_file($_FILES[$name]['tmp_name'], $path."/".$file_name);
return '上傳成功|'.$file_name;
}else{
return "文件上傳失敗!";
}
}
?>
D. php上傳如何設置才能上傳壓縮包跟txt文本
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>網頁教學網(webjx.com)文件上傳實例</title>
</head>
<body>
<form enctype="multipart/form-data" action=upfile.php method=post>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type=file name=upfile size=20>
<input type=submit value='上傳文件'>
</form>
</body>
</html>
<?
function getname($exname){
$dir = "../uploadfile/";
$i=1;
if(!is_dir($dir)){
mkdir($dir,0777);
}
while(true){
if(!is_file($dir.$i.".".$exname)){
$name=$i.".".$exname;
break;
}
$i++;
}
return $dir.$name;
}
$exname=strtolower(substr($_FILES['upfile']['name'],(strrpos($_FILES['upfile']['name'],'.')+1)));
$uploadfile = getname($exname);
if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)) {
echo "<h2><font color=#ff0000>文件上傳成功!</font></h2><br><br>";
}else {
echo "<h2><font color=#ff0000>文件上傳失敗!</font></h2><br><br>";
}
echo "下面是文件上傳的一些信息:
<br><br>原文件名:".$_FILES['upfile']['name'] .
"<br><br>類型:" .$_FILES['upfile']['type'] .
"<br><br>臨時文件名:".$_FILES['upfile']['tmp_name'].
"<br><br>文件大小:".$_FILES['upfile']['size'] .
"<br><br>錯誤代碼:".$_FILES['upfile']['error'];
?>
一般文件都是可以傳的!文件太大就不行了!
E. PHP怎麼寫入TXT文檔
php 寫入txt:
PHP
function writelog($str)
{
$open=fopen("log.txt","a" );
fwrite($open,$str);
fclose($open);
}
'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
php txt 換行
"\r\n"
不可用單引號.
F. [php教程]如何用php實現上傳txt文件
你可以查看此W3教程: http://w3school.com.cn/php/php_file_upload.asp
G. php讀取上傳的TXT文件
file_get_contents
fopen
這兩個都是打開文件的函數,
可以設置explode用某符號分割。
$lines=file("db.txt"); //逐行讀取TXT文件
foreach ($lines as $value) {
$line=explode(",",$value);
echo "no1:$line[0]--no2:$line[1]---time:$line[2]-<br>";
}
H. php上傳文件
根據你的程序,重新寫了一套,你自己看一下吧,後面都有相關的標注,會加深印象,你原程序那個$filename是程序原本的文件名,沒得到的話,真讓我感覺匪夷所思……不管了,重寫一個吧,你給的信息也太少了,到底怎麼回事也沒弄明白。
哦哦,忽然想到一種可能啊,你好好檢查一下你的資料庫欄位,看看是不是char 類型,或text,或varcharf都可以,別是其它不支持的類型哦,這點很重要,不然我這套程序,依舊你也寫不進去!!!
<?php
include "conn.php";
mysql_select_db("mydb");
if(is_uploaded_file|$_FILES['Filedata']['tmp_name']){ //這一句是用來判斷是否有文件上傳來的。如果有的放,才執行下面的內容;
$Filedata = $_FILES["Filedata"];
$name = $Filedata['name']; //真實的文件名字是這個,而不是tmp_name, 要知道,tmp_name是臨時文件名,是php系統臨時分配的文件名,只起到一個短時間中轉的作用。而這個才是真正的文件名(確切地說,應該是上傳時原文件名。上傳後,這個文件名是可以隨意更改的。)但是在我這套程序中,好像沒用到它哦。
$type = $Filedata['type']; //這些和上面下面都是一樣,都是$_FILES[]這個系統變數自動生成的一系列參數。這個是文件類型;
$size = $Filedata['size']; //這個是文件大小,以位元組為單位;
$tmp_name = $Filedata['tmp_name']; //這個是臨時文件名,看到了吧,重點就在這里,進行移動的時候這個會用到哦。
$error = $Filedata['error']; //這個是上傳中是否有什麼錯誤,如果有錯誤的話,會返回錯誤,沒有是false;
////////////////////////////////////////////
//
//===========以下是對文件進行伺服器端驗證,做好相關工作的話,可在一定程度上防止被傳木馬
//
/////////////////////////////////////////////
if($size>=30000){
exit('您上傳的文件大小超過限定');
}
switch($type){ //這里我用圖片文件進行說明,如果你的是其它文件的話,也可以按這個方法進行處理。
case 'image/pjpeg' : $nameback='.jpg'; //jpeg
break;
case 'image/jpeg' : $nameback='.jpg'; //jpg
break;
case 'image/gif' : $nameback='.gif'; //gif
break;
case 'image/png' : $nameback='.png'; //png
break;
case 'image/bmp' : $nameback='.bmp'; //bmp
break;
case exit('類型犯規!');
} //switch end
///////////////////////////////////////////
//
//以下是對文件進行上傳後處理,包括更改文件名、寫入資料庫。(當然還可以加入判斷是否有重復文件等,這里就不做實例了。)
//
///////////////////////////////////////////
if($nameback && $error==0){
$filename='UF_' . date("Ymdhs") . $nameback; //新文件名的命名規則中間的是時間,就是這一步,可以在一定程序上防止被惡意上傳;
$fileplace='uploads/' . $filename; //上傳後要修改的文件(包括目錄)
$fileroot='uploads/'; //上傳後文件放置目錄;
file_put_contents("catcah.txt",$tmp_name); //存放臨時文件名
move_uploaded_file($tmp_name, $fileplace); //注意,這里放的是包括目錄和文件名的變數哦,並且在這個過程中,上傳的文件名也更改啦。
$username = mysql_real_escape_string($_POST['username']);
$query =@mysql_query( "INSERT INTO `$username`(`fname`,`file`)VALUES('$filename','$uploadfile')")or die("error");
}//last if end
}//upload and writefile end(the first if end)
?>
不過看你的另一個欄位已經寫進去了,好像不應該是資料庫的問題,也許是$_FILES['Filedata']["name"]根本就沒有取到值?,你不妨在那裡echo一下,看看是不是有取到,要學會如何調試哦,調式能力可以考驗一個phper水準的重要項目啊。
I. PHP+HTML填寫數據提交到TXT文件
1、html表單
2、php接收表單
3、創建或找開txt文件
4、php將接收到html表單的信息寫入txt文件
步驟就是這樣了