PHP實現上傳文件並存進資料庫的方法

来源:http://www.cnblogs.com/aspnetjia/archive/2016/02/11/5186471.html
-Advertisement-
Play Games

本文實例講述了PHP實現上傳文件並存進資料庫的方法。分享給大家供大家參考。具體如下: show_add.php文件如下: <?php if(!isset($_REQUEST[''id'']) or $_REQUEST[''id'']=="") die("error: id none"); $id =


本文實例講述了PHP實現上傳文件並存進資料庫的方法。分享給大家供大家參考。具體如下:

show_add.php文件如下:

<?php     
  if(!isset($_REQUEST[''id'']) or $_REQUEST[''id'']=="") die("error: id none");
  $id = $_REQUEST[''id''];
  //定位記錄,讀出
  $conn=mysql_connect("localhost","root","admin");
  if(!$conn) die("error: mysql connect failed");
  mysql_select_db("nokiapaymentplat",$conn);
  $sql = "select * from receive where id=$id";
  $result = mysql_query($sql,$conn);
  if(!$result) die("error: mysql query");
  $num=mysql_num_rows($result);
  if($num<1) die("error: no this recorder");
  $data = mysql_result($result,0,"file_data");
  $type = mysql_result($result,0,"file_type");
  $name = mysql_result($result,0,"file_name");
  mysql_close($conn);
  //先輸出相應的文件頭,並且恢複原來的文件名
  header("Content-type:$type");
  header("Content-Disposition: attachment; filename=$name");
  echo $data;
?>

show_info.php文件如下:

<?php 
   if(!isset($_REQUEST[''id'']) or $_REQUEST[''id'']=="") die("error: id none");
  $id = $_REQUEST[''id''];
  //定位記錄,讀出
  $conn=mysql_connect("localhost","root","admin");
  if(!$conn) die("error: mysql connect failed");
  mysql_select_db("nokiapaymentplat",$conn);
  $sql = "select file_name ,file_size from receive where id=$id";
  $result = mysql_query($sql,$conn);
  if(!$result) die(" error: mysql query");
  //如果沒有指定的記錄,則報錯
  $num=mysql_num_rows($result);
  if($num<1) die("error: no this recorder");
  //下麵兩句程式也可以這麼寫
  //$row=mysql_fetch_object($result);
  //$name=$row->name;
  //$size=$row->size;
  $name = mysql_result($result,0,"file_name");
  $size = mysql_result($result,0,"file_size");
  mysql_close($conn);
  echo "<hr>上傳的文件的信息:";
  echo "<br>The file''s name - $name";  
  echo "<br>The file''s size - $size"; 
  echo "<br><a href=show_add.php?id=$id>附件</a>";
?>

submit.php文件如下:

<?php  
  if(is_uploaded_file($_FILES[''myfile''][''tmp_name''])) {
  //有了上傳文件了 
  $myfile=$_FILES["myfile"];
    //設置超時限制時間,預設時間為 30秒,設置為0時為不限時
    $time_limit=60;     
    set_time_limit($time_limit); //
    //把文件內容讀到字元串中
    $fp=fopen($myfile[''tmp_name''], "rb");
    if(!$fp) die("file open error");
    $file_data = addslashes(fread($fp, filesize($myfile[''tmp_name''])));
    fclose($fp);
    unlink($myfile[''tmp_name'']); 
    //文件格式,名字,大小
    $file_type=$myfile["type"];
    $file_name=$myfile["name"];
    $file_size=$myfile["size"];
    die($file_type);
    //連接資料庫,把文件存到資料庫中
    $conn=mysql_connect("localhost","root","admin");
    if(!$conn) die("error : mysql connect failed");
    mysql_select_db("nokiapaymentplat",$conn);
    $sql="insert into receive 
    (file_data,file_type,file_name,file_size) 
    values (''$file_data'',''$file_type'',''$file_name'',$file_size)";
    $result=mysql_query($sql,$conn);
    //下麵這句取出了剛纔的insert語句的id
    $id=mysql_insert_id();
    mysql_close($conn);
    set_time_limit(30); //恢復預設超時設置 
    echo "上傳成功--- ";
    echo "<a href=''show_info.php?id=$id''>顯示上傳文件信息</a>";
  }  
  else {  
    echo "你沒有上傳任何文件";  
  }  
?>

upload.php文件如下:

 

<html>  
<head>  
<title>文件上傳表單</title>  
</head>  
<body>  
<table>  
<form enctype=''multipart/form-data'' name=''myform'' action=''submit.php'' 
method=''post''>  
<INPUT TYPE = "hidden" NAME = "MAX_FILE_SIZE" VALUE ="1000000">
<tr><td>選擇上傳文件</td><td>
<input name=''myfile'' type=''file''></td></tr> 
<tr><td colspan=''2''><input name=''submit'' value=''上傳''  type=''submit''></td></tr>  
</table>  
</body>  
</html>
轉載自:http://aspnetjia.com

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉發至:http://www.ituring.com.cn/article/130823 導言 現代的應用程式面臨著諸多的挑戰,如何構建具有可伸縮性和高性能的應用成為越來越多軟體開發者思考的問題。隨著應用規模的不斷增大,業務複雜性的增長以及實時處理需求的增加,開發者不斷嘗試榨取硬體資源、優化。 在不
  • 原文地址 本文只是帶你進入 Scala 的世界,包括安裝、不可變變數 val、可變變數 var、定義類、集合(包括列表(list)、集(set)、映射(map))以及集合遍歷和集合庫(能達到並行/併發效果)。 題外話,如果 Java 爭氣的話,還就真不會出現像 Scala 這些語言。對於函數編程風格...
  • 作為一個開發者,我發現在我的日常工作中越來越多地查看PHP的源碼。在為了弄清楚奇怪的邊界問題和為什麼某些問題應該發生的卻沒有發生而去理解背後究竟發生了什麼事情的時候非常有用。在文檔缺失、不完整或者錯誤的情況下也很有用。因此,我已經決定通過一系列的文章來分享我學到的知識,給予PHP開發者們足夠的知識去...
  • C++Primer第5版學習筆記(三) 第四/五章的重難點內容 你可以點擊這裡回顧第三章內容 因為第五章的內容比較少,因此和第四章的筆記內容合併。 第四章是和表達式有關的知識,表達式是C++的基礎設施,本章由三部分組成: 1.表達式概念基礎,包括表達式的基本概念,左值和右值的概念,優先順序結合律,求值
  • 其實不是真的創建了批量任務,而是用python創建一個文本文件,每行一個要下載的鏈接,然後打開迅雷,複製文本文件的內容,迅雷監測到剪切板變化,彈出下載全部鏈接的對話框~~ 實際情況是這樣的,因為用python分析網頁非常,比如下載某頁中的全部pdf鏈接 1 from __future__ impor
  • C-Free和VC++ 6.0是根據源文件擴展名來編譯的。在學習C語言時,應將IDE的預設擴展名設置為.c,或者先保存為.c文件再進行編譯,以避免造成不必要的困惑。
  • 官網地址 本文內容 簡介 Futures 阻塞 異常 Promises 工具 最近看了《七周七語言:理解多種編程泛型》,介紹了七種語言(四種編程泛型)的主要特性:基本語法,集合,並行/併發,其中就有 Scala。你不能指望這種書全面介紹,因為其中任何一門語言都夠寫一本書了~ 我比較關註並行/併發,但
  • 1 /* 2 類是屬於用戶自定義的數據類型, 3 並且該類型的數據具有一定的行為能力, 4 也就是類中說描述的方法。 5 通常來說, 6 一個類的定義包含兩部分的內容, 7 一是該類的屬性, 8 另一部分是它所擁有的方法。 9 以 "人類" 這個類來說, 10 每個人都有自己的姓名、年齡、出生日期、
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...