使用php上传文件时发出警报

时间:2014-05-14 13:01:21

标签: php file upload

我有一个可以使用的文件上传页面,但是我尝试做一些错误提醒,以便选择是否要替换。 这是我执行上传的php文件

<?php
require ("connect.php");
$filename = "docs/".$_FILES['datafile']['name']."";
$d=explode(".",$_FILES['datafile']['name']);
if (file_exists($filename)) {
 echo "<script>alert('Full dump for ".$d[0]." already exists.')</script>";
 $error = 1;
} else {
   $target_path = "docs/";
   $target_path = $target_path . basename( $_FILES['datafile']['name']); 
   if(move_uploaded_file($_FILES['datafile']['tmp_name'], $target_path)) 
   {
    echo "The file ".  basename( $_FILES['datafile']['name'])." has been uploaded";
    $error = 0;
   }
   else
    {
     echo "There was an error uploading the file, please try again!";
     $error = 1;
    }
}
if ($error != 1)
{
 $r1 = mysql_query("insert into full_dump (file_name) values ('".$_FILES['datafile']['name']."')")or die(mysql_error());
 $file1 = "docs/".$_FILES['datafile']['name']."";
 $lines = file($file1); 
 $count = count($lines);
 $fp = fopen("docs/".$_FILES['datafile']['name']."","r");
 $data=fread($fp,filesize("docs/".$_FILES['datafile']['name'].""));
 $tmp=explode ("\n", $data);
 for ($i=0; $i<$count; $i++)
 {
  $a=$tmp[$i];
  $b=$i+1;
  $r2 = mysql_query("update full_dump set field_".$b."='".$a."' where file_name='".$_FILES['datafile']['name']."'")or die(mysql_error());
 }
echo"</br>";
echo "Uploading Complete</br>";
echo "Uploaded File Info:</br>";
echo "Sent file: ".$_FILES['datafile']['name']."</br>";
echo "File size: ".$_FILES['datafile']['size']." bytes</br>";
echo "File type: ".$_FILES['datafile']['type']."</br>";
}
?> 

我想要的不是

if (file_exists($filename)) {
 echo "<script>alert('Full dump for ".$d[0]." already exists.')</script>";
 $error = 1;
}

如果我想替换文件,请发出警报。如果是,它将替换文件,删除数据库中的旧记录并插入新记录。我不会做任何事情......或者显示消息&#34;被用户取消&#34;。在用户选择或不替换时,是否可以为$ YES分配值?

UPDATE 这是上传的表单页面。

<html>
<head>
<script language="Javascript">
function fileUpload(form, action_url, div_id) {
// Create the iframe...    
var iframe = document.createElement("iframe");    
iframe.setAttribute("id", "upload_iframe");    
iframe.setAttribute("name", "upload_iframe");    
iframe.setAttribute("width", "0");    
iframe.setAttribute("height", "0");    
iframe.setAttribute("border", "0");    
iframe.setAttribute("style", "width: 0; height: 0; border: none;");     
// Add to document...    
form.parentNode.appendChild(iframe);    
window.frames['upload_iframe'].name = "upload_iframe";     
iframeId = document.getElementById("upload_iframe");     
// Add event...    
var eventHandler = function () {             
    if (iframeId.detachEvent) iframeId.detachEvent("onload", eventHandler);            
        else iframeId.removeEventListener("load", eventHandler, false);             
    // Message from server...            
    if (iframeId.contentDocument) {                
    content = iframeId.contentDocument.body.innerHTML;            
    } 
        else if (iframeId.contentWindow) {                
            content = iframeId.contentWindow.document.body.innerHTML;            
        } 
            else if (iframeId.document) {                
                content = iframeId.document.body.innerHTML;            
            }             
    document.getElementById(div_id).innerHTML = content;             
    // Del the iframe...            
    setTimeout('iframeId.parentNode.removeChild(iframeId)', 250);        
}     
if (iframeId.addEventListener) iframeId.addEventListener("load", eventHandler, true);    
if (iframeId.attachEvent) iframeId.attachEvent("onload", eventHandler);     
// Set properties of form...    
form.setAttribute("target", "upload_iframe");    
form.setAttribute("action", action_url);    
form.setAttribute("method", "post");    
form.setAttribute("enctype", "multipart/form-data");    
form.setAttribute("encoding", "multipart/form-data");     
// Submit the form...    
form.submit();     
document.getElementById(div_id).innerHTML = "Uploading...";}
</script> 
</head>
<body>
<form enctype=\"multipart/form-data\" method=\"POST\">
    <input type="file" name="datafile" />
    <input type="button" value="upload" onClick="fileUpload(this.form,'file_upload.php','upload'); return false;" >
    <div id="upload"></div>
</form>
<?php
require("connect.php");
$result = mysql_query("SELECT * FROM full_dump")or die(mysql_error());
while($row = mysql_fetch_array($result))
{
echo "Job number: <a href=\"pdf.php?job=".$row['file_name']."\"target=\"_blank\">".$row['file_name']."</a></br>";
}
?>

2 个答案:

答案 0 :(得分:1)

你应该使用ajax ...当你发送 ajax 请求时,你会检查文件存在不是 ..如果是,则返回例如-1并询问用户复发 ...

<小时/> 享受:)

答案 1 :(得分:0)

而不是在同一页面上使用上传代码。做一件事,使用ajax请求上传文件。然后检查后端站点文件是否存在,并根据您喜欢的那个显示消息