2015-03-13 124 views
-1

我想上傳一個文件,我將存儲名稱,鏈接&文件的大小。然後,我想要檢索該文件的鏈接,以便我可以讀取該文件。&將文件的內容在提取後存儲在數據庫中。是否可以同時存儲和檢索來自MySQL數據庫的數據

是否可以在單個PHP文件中執行此操作?現在當我上傳文件時,它存儲名稱,將文件大小&鏈接到數據庫。但爲了讀取上傳的文件,提取內容&將內容存儲到數據庫中,我必須重新上傳同一文件。

users.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<user> 
    <FirstName>Example 1</FirstName> 
    <LastName>Example 2</LastName> 
    <Phone>Example 3</Phone> 
    <Address>Example 4</Address> 
</user> 

下面是PHP腳本:

<?php 

//report any error 
error_reporting(E_ALL); ini_set('display_errors', 1); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 

//connect to database 
include 'conn.php'; 

$ds = "/"; 
$storeFolder = 'uploads'; 


if(!empty($_FILES)) { 
    $fname = basename($_FILES['file']['name']); 
    $ftype = $_FILES['file']['type']; 
    $fsize = $_FILES['file']['size']; 
    $flink = 'http://localhost/aps/upload/' . rawurlencode($fname); 

    $xml = simplexml_load_file($flink); 

    $firstname = $xml->FirstName; 
    $lastname = $xml->LastName; 
    $phone = $xml->Phone; 
    $address = $xml->Address; 

    $tempFile = $_FILES['file']['tmp_name']; 
    $targetPath = dirname(__FILE__) . $ds . $storeFolder . $ds; 
    $targetFile = $targetPath . $_FILES['file']['name']; 
    move_uploaded_file($tempFile, $targetFile); 

    $query = "INSERT INTO user_details (link, name, size, type, first_name, last_name, phone, address) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; 

    $stmt = $conn->prepare($query); 
    $stmt->bind_param('ssssssss', $flink, $fname, $fsize, $ftype, $firstname, $lastname, $phone, $address); 
    $stmt->execute(); 
    $stmt->store_result(); 
    $stmt->bind_result($link, $name, $size, $type, $first_name, $last_name, $phone, $address); 


} 

//Close statement 
$stmt->close(); 

//Close connection 
$conn->close(); 

?> 

欣賞的幫助。謝謝。

+0

你能顯示你的代碼嗎? – dbinns66 2015-03-13 19:24:08

+0

或者至少解釋文件上傳的方式 - 您用於處理上傳的過程,拉取數據庫名稱,放置文件的位置(遠離臨時位置 - 上傳)等。 – 2015-03-13 19:26:11

+0

無論您通過PHP放入數據庫也立即可用於PHP腳本..所以我認爲我們需要看到一些代碼來指導你如何工作。 – flyandi 2015-03-13 19:28:32

回答

0

你看上去下載文件它的上傳後,嘗試加載該文件,你做move_uploaded_file之後......你想$的TargetFile的插入到表user_details到現場「file_data」的內容嘗試更改爲

move_uploaded_file($tempFile, $targetFile); 
$xml = simplexml_load_file($targetFile); 

$firstname = $xml->FirstName; 
$lastname = $xml->LastName; 
$phone = $xml->Phone; 
$address = $xml->Address; 

$query = "INSERT INTO user_details (link, name, size, type, first_name, last_name, phone, address) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; 

$stmt = $conn->prepare($query); 
$stmt->bind_param('ssssssss', $flink, $fname, $fsize, $ftype, $firstname, $lastname, $phone, $address); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->bind_result($link, $name, $size, $type, $first_name, $last_name, $phone, $address); 
+0

它不起作用,這不正是我要找的。我想從我上傳的XML文件中提取元素並將它們插入到數據庫中。無論如何,而不是file_get_content,我這樣做:$ xml = simplexml_load_file($ targetFile);好的,這個作品謝謝! – sw2 2015-03-13 19:53:22

+0

是啊...不知道我想要的數據庫中的原始文件數據來自哪裏,我刪除了那部分。很高興有用的部分正在爲你工作! – dbinns66 2015-03-13 20:00:15

相關問題