❶ php,ajax。如何做到無刷新上傳圖片啊,關鍵是無刷新而且是圖片
最常見的做法有2種:
當選擇一個文件後,用JS動態的創建一個Iframe,Iframe內寫入一個隱藏的表單,然後讓表單提交;
利用Flash來實現上傳,但是缺點是必須手動的傳遞session_id,否則無法進行狀態維護;
❷ 用php如何進行無刷新文件上傳
最近做項目時需要用到無刷新上傳圖片並預覽,在網上找了一些教程,似乎最簡單的方法就是iframe上傳。一個最原始最簡單的iframe上傳例子:
前台上傳頁面index.html,主要是一個表單與一個js回調函數。上傳文件時,form表單的method、 enctype屬性必須和下面代碼一樣。然後將target的值設為iframe的name,這樣就可以實現無刷新上傳文件。
XML/HTML代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>上傳文件</title>
</head>
<body>
<script>
function CallbackFunction(str){
alert("上傳成功");
}
</script>
<form action="uploadfile.php" enctype="multipart/form-data" method="post" target="iframeUpload">
<iframe name="iframeUpload" src="" width="350" height="35" frameborder=0 SCROLLING="no" style="display:NONE"></iframe>
<input id="test_file" name="test_file" type="file">
<input value="上傳文件" type="submit">
</form>
</body>
</html>
後台上傳處理頁面uploadfile.php,這段代碼為簡單的上傳代碼,沒有進行錯誤及異常處理。上傳代碼執行完成後,要告訴父頁面已經上傳完畢了,因此,在這個頁面里調用父頁面的回調函數CallbackFunction,這個函數可以有參數,形式自己定義。
PHP代碼
<?php
set_time_limit(0);
if($_SERVER['REQUEST_METHOD']=='POST') {
move_uploaded_file($_FILES["test_file"]["tmp_name"],
dirname($_SERVER['SCRIPT_FILENAME'])."/UploadTemp/" . $_FILES["test_file"]["name"]);
echo "<script>window.parent.CallbackFunction();</script>";
}
?>
以上是用iframe實現無刷新上傳文件的簡單方法,想要健壯的程序的話需要再細化。
❸ php無刷新上傳後如何顯示上傳的圖片
msg = "上傳成功";
這句中改成:
msg =" <img border=0 src=你上傳的圖片的地址 alt='上傳成功' title='提示信息'/>"
❹ 請問如何用php實現實現頁面無刷新上傳圖片
1,頁面需要嵌入iframe
src是你另一個php程序,比如upload.php
2.form
提交的時候提交到iframe
3.upload.php判斷提交成功輸出一段js代碼,parent.document.getElemetById("PID").src="成功後的圖片地址";
❺ 用php做得網頁,當資料庫有數據錄入的時候,想自動在頁面上無刷新提示有信息錄入該怎麼做
可以直接用Timer控制項。
前台:
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick" ></asp:Timer>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
後台:
protected void Timer1_Tick(object sender, EventArgs e)
{
//讀取資料庫,判斷是否有數據更新,有則彈出消息提示 }
❻ thinkphp中怎樣無刷新上傳文件
其實和框架沒什麼關系,用ajax來做,實現無刷新上傳文件
❼ 如何運用PHP Ajax實現圖片的無刷新上傳
<metacharset="utf-8">
<formid="uploadForm">
<p>指定文件名:<inputtype="text"name="filename"value=""/></p>
<p>
上傳文件:
<inputtype="file"name="photo"onchange="showPreview(this)"class="file"/>
<imgid="portrait"src=""width="70"height="75">
</p>
<inputtype="button"value="上傳"onclick="doUpload()"/>
</form>
<scriptsrc="http://www.haoyunyun.cn/jquery.js"></script>
<script>
functiondoUpload(){
varformData=newFormData($("#uploadForm")[0]);
$.ajax({
url:'submit.php',
type:'POST',
data:formData,
async:false,
cache:false,
contentType:false,
processData:false,
success:function(returndata){
alert(returndata);
},
error:function(returndata){
alert(returndata);
}
});
}
</script>
<scripttype="text/javascript">
functionshowPreview(source){
varfile=source.files[0];
if(window.FileReader){
varfr=newFileReader();
fr.onloadend=function(e){
document.getElementById("portrait").src=e.target.result;
};
fr.readAsDataURL(file);
}
}
</script>
<?php
if($_FILES['photo']['error']>0){
echo"上傳文件失敗";
die;
}
$dir='./photo/';
$type=substr($_FILES['photo']['name'],strrpos($_FILES['photo']['name'],'.'));
$filename=time().rand(1000,9999).$type;
if(is_uploaded_file($_FILES['photo']['tmp_name'])){
move_uploaded_file($_FILES['photo']['tmp_name'],$dir.$filename);
echo"上傳成功";
}else{
echo"上傳文件失敗";
}
❽ PHP里的ajax無刷新上傳圖片問題
html:
<input id="file" name="file" type="file"/>
jquery:
var formData = new FormData();
formData.append("file", $("#file")[0].files[0]);
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
//這里是上傳過程的實時,一般用於做進度條
}
}, false);
return xhr;
},
type: 'POST',
contentType:false,
processData:false,
url:'', //你php端的地址
data: formData,
}).done(function(d) {
console.log(d); //d是php的json返回
});
php端:
if ($_FILES['file']['error'] != 0) {
return '上傳錯誤';
}
$file = $_FILES['file']['tmp_name']; //這個是伺服器接收到的臨時文件的路徑,就是文件已經在伺服器上了