Ⅰ 請問 在php+juqery+ajax的情況下上傳頭像並瀏覽時,用戶多次上傳頭像圖片後還是不滿意
這個,可以這樣,文件上傳後,並不是馬上就保存到了指定的目錄下
而是在伺服器端的一個緩存副本中,(這個緩存副本目錄是由php.ini指定的,這里可以不用管他)
這個時候,把這個副本讀取出來並顯示於網頁上,如果用戶滿意,就點擊保存,這個時候才真正保存到你所謂的伺服器上的某一個目錄,如果用戶不滿意,那就重新上傳唄, 緩存副本中的文件,並不是永久的,只要沒有保存,都是會消失的,這不就解決了你的問題嗎?
Ⅱ php中上傳文件的方法有多少種
一、傳統的php寫的上傳類。
寫一個php的上傳類,這個方法用到的知識全部是php的,而且技術的難點也不多。
<form method="post" action="upload.php" enctype="multipart/form-data">
<table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">//隱藏域。這里name必須設置成MAX_FILE_SIZE,其值就是上傳文件的最大長度,單位是B,這里我限製成2M
<input name="file" type="file" value="瀏覽" >
< input type="submit" value="上傳" name="B1">
</table>
</form>
服務端利用php的$_FILES['file']['name']來獲取文件後綴名,具體的代碼自己查找資料看看,這里就不多說了。
總結;這個方法可以用來上傳小於2M的文件或者是圖片,基本的功能可以實現。
二、利用uploadify插件
這個是利用jQuery的上傳插件,上傳可以帶進度條,容易配置。
總結:可以上傳一些大文件,和圖片,而且帶進度條,可以多文件上傳,在WEB中會經常用。
三、利用網路的webupload
WebUploader 是由 Bai FEX 團隊開發的一款以 HTML5 為主,FLASH 為輔的現代文件上傳組件。在現代的瀏覽器裡面能充分發揮 HTML5 的優勢,同時又不摒棄主流IE瀏覽器,沿用原來的 FLASH 運行時,兼容 IE6+,iOS 6+, Android 4+。採用大文件分片並發上傳,極大的提高了文件上傳效率。
四、swfupload的插件
這是一個jquery的上傳插件,功能也非常強大,開發也比較容易,網上有很多的資料,可以自行查找。
Ⅲ php怎麼實現頭像上傳到客戶端
php根據APP的上傳方式來決定PHP端的獲取方式,多數都是表單式上傳。
$_FILES; file_get_contents('php://input')都可以。
還有的是先在客戶端讀取了文件內容,再base64編碼,再上傳。
比較簡單的大文件斷點上傳,其實就可以靠APP處理。
Ⅳ 求PHP+jquery的uploadify插件實現完整的圖片上傳實例,要連接資料庫的,並且可以選擇相冊來上傳,如圖
w3school上的例子,如果要做的好點,就要結合JS和AJAX,還有使用MYSQL把文件的路徑保存來
http://www.w3school.com.cn/php/php_file_upload.asp
http://www.neatstudio.com/show-1343-1.shtml,這里有詳細的講解,關於文件上傳,整個項目,最關鍵的是上傳部分,使用JQERUY插件可以使JS部分變的很簡單
Ⅳ jquery 上傳文件插件uploadify jsp版本
1、下載最新的zip壓縮包 http://www.uploadify.com
2、從其中提取文件。
下載插件安裝包後,可以看到官方給出的例子。裡面文件夾的幾個主要文件:jquery.uploadify.js(完成上傳功能的腳本文件,在調用頁面引
用)、uploadify.css(外觀樣式表)、uploader.swf(上傳控制項的主體文件,flash控制項)、upload.php(伺服器端處
理文件,官方僅提供了php版的)。
下面我使用的是在MyEclipse部署的java版。注意:需要加入三個commons.jar包:io、logging、fileupload。
3、導入default.css,uploadify.css,jQuery腳本,swfobject腳本和Uploadify插件。並且添加調用插件使用$,在您的網頁的<head>部分ready事件:
<%@pagelanguage="java"contentType="text/html;charset=utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>Upload</title>
<!--裝載文件-->
<linkhref="css/default.css"rel="stylesheet"type="text/css"/>
<linkhref="css/uploadify.css"rel="stylesheet"type="text/css"/>
<scripttype="text/javascript"src="scripts/jquery-1.3.2.min.js"></script>
<scripttype="text/javascript"src="scripts/swfobject.js"></script>
<scripttype="text/javascript"src="scripts/jquery.uploadify.v2.1.0.min.js"></script>
<!--ready事件-->
<scripttype="text/javascript">
$(document).ready(function(){
$("#uploadify").uploadify({
'uploader':'uploadify.swf',
'script':'servlet/Upload',//後台處理的請求
'cancelImg':'images/cancel.png',
'folder':'uploads',//您想將文件保存到的路徑
'queueID':'fileQueue',//與下面的id對應
'queueSizeLimit':1,
'fileDesc':'rar文件或zip文件』,
'fileExt':'*.rar;*.zip',//控制可上傳文件的擴展名,啟用本項時需同時聲明fileDesc
'auto':false,
'multi':true,
'simUploadLimit':2,
'buttonText':'BROWSE'
});
});
</script></head>
<body>
<divid="fileQueue"></div>
<inputtype="file"name="uploadify"id="uploadify"/>
<p>
<ahref="javascript:jQuery('#uploadify').uploadifyUpload()">開始上傳</a>
<ahref="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上傳</a>
</p>
</body>
</html>
4、後台處理的upload.java
packagecom.xzit.upload;
importjava.io.File;
importjava.io.IOException;
importjava.util.Iterator;
importjava.util.List;
importjava.util.UUID;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.commons.fileupload.FileItem;
importorg.apache.commons.fileupload.FileUploadException;
importorg.apache.commons.fileupload.disk.DiskFileItemFactory;
importorg.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("serial")
{
@SuppressWarnings("unchecked")
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
StringsavePath=this.getServletConfig().getServletContext()
.getRealPath("");
savePath=savePath+"/uploads/";
Filef1=newFile(savePath);
System.out.println(savePath);
if(!f1.exists()){
f1.mkdirs();
}
DiskFileItemFactoryfac=newDiskFileItemFactory();
ServletFileUploapload=newServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
ListfileList=null;
try{
fileList=upload.parseRequest(request);
}catch(FileUploadExceptionex){
return;
}
Iterator<FileItem>it=fileList.iterator();
Stringname="";
StringextName="";
while(it.hasNext()){
FileItemitem=it.next();
if(!item.isFormField()){
name=item.getName();
longsize=item.getSize();
Stringtype=item.getContentType();
System.out.println(size+""+type);
if(name==null||name.trim().equals("")){
continue;
}
//擴展名格式:
if(name.lastIndexOf(".")>=0){
extName=name.substring(name.lastIndexOf("."));
}
Filefile=null;
do{
//生成文件名:
name=UUID.randomUUID().toString();
file=newFile(savePath+name+extName);
}while(file.exists());
FilesaveFile=newFile(savePath+name+extName);
try{
item.write(saveFile);
}catch(Exceptione){
e.printStackTrace();
}
}
}
response.getWriter().print(name+extName);
}
}
5、配置處理的servlet
Web.xml文件
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>upload</servlet-name>
<servlet-class>com.xzit.upload.Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>upload</servlet-name>
<url-pattern>/servlet/Upload</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
6.完成。
Ⅵ php怎麼上傳頭像
php上傳頭像的功能需要掌握的就是有關文件上傳類的php知識,需要知道的圖片的格式,圖片上傳大小的限制,需要用到的函數有is_uploaded_file(文件上傳的方式)等等,這里舉個例子:
$allowType = array('image/png', 'image/jpeg', 'image/gif');
//做上傳圖片的驗證
//使用try/catch來做判斷
try{
if ( !is_uploaded_file($_FILES['thumb']['tmp_name']) ) {
throw new Exception('縮略圖上傳錯誤'); //拋出錯誤
}
if ( !is_uploaded_file($_FILES['img']['tmp_name']) ) {
throw new Exception('大圖上傳錯誤'); //拋出錯誤
}
if ( !in_array($_FILES['thumb']['type'], $allowType) ) {
throw new Exception('縮略圖格式錯誤'); //拋出錯誤
}
if ( !in_array($_FILES['img']['type'], $allowType) ) {
throw new Exception('大圖格式錯誤'); //拋出錯誤
}
if ( !($_FILES['thumb']['size'] <= 2*1024*1024) ) {
throw new Exception('縮略圖大小錯誤'); //拋出錯誤
}
if ( !($_FILES['img']['size'] <= 2*1024*1024) ) {
throw new Exception('大圖大小錯誤'); //拋出錯誤
}
$thumb_filename = time().mt_rand().substr($_FILES['thumb']['name'], strrpos($_FILES['thumb']['name'], '.'));
$img_filename = mt_rand().time().substr($_FILES['img']['name'], strrpos($_FILES['img']['name'], '.'));
if ( !move_uploaded_file($_FILES['thumb']['tmp_name'], UPLOAD_PATH.'/goods/'.$thumb_filename) ) {
throw new Exception('縮略圖上傳失敗'); //拋出錯誤
}
if ( !move_uploaded_file($_FILES['img']['tmp_name'], UPLOAD_PATH.'/goods/'.$img_filename) ) {
throw new Exception('大圖上傳失敗'); //拋出錯誤
}
} catch ( Exception $e ) {
$message = $e->getMessage();
}
這個函數實現了對圖片的類型的判斷,大小的判斷,還有上傳圖片的命名。
Ⅶ 請問ASP要如何使用jquery的插件uploadify,官網上的只有PHP的
Uploadify簡單說來,是基於Jquery的一款文件上傳插件。它的功能特色總結如下:
支持單文件或多文件上傳,可控制並發上傳的文件數
在伺服器端支持各種語言與之配合使用,諸如PHP,.NET,Java……
通過參數可配置上傳文件類型及大小限制
通過參數可配置是否選擇文件後自動上傳
易於擴展,可控制每一步驟的回調函數(onSelect, onCancel……)
通過介面參數和CSS控制外觀
更多……
相關鏈接
Uploadify主頁地址:http://www.uploadify.com/ 在該頁面你可以了解到關於他的更多內容。
Uploadify在線演示:在線Demo
Uploadify配置參數及介面文檔:http://www.uploadify.com/documentation
Uploadify插件下載地址:http://www.uploadify.com/download
使用方法
下載插件安裝包後,可以看到裡面的幾個主要文件:jquery.uploadify.js(完成上傳功能的腳本文件,在調用頁面引用)、uploadify.css(外觀樣式表)、uploader.swf(上傳控制項的主體文件,flash控制項)、upload.php(伺服器端處理文件,官方僅提供了php版的)
引用了插件文件後,在頁面中做如下調用:
//聲明一個普通的html文件上傳控制項,並指定id
<input type="file" name="fileInput" id="fileInput" />
//將聲明的普通上傳控制項與Uploadify插件綁定
<script type="text/javascript">
$(document).ready(function() {
$('#fileInput').fileUpload ({
//以下參數均是可選
'uploader' : 'uploader.swf', //指定上傳控制項的主體文件,默認『uploader.swf』
'script' : 'upload.php', //指定伺服器端上傳處理文件,默認『upload.php』
'cancelImg' : 'cancel.png', //指定取消上傳的圖片,默認『cancel.png』
'auto' : true, //選定文件後是否自動上傳,默認false
'folder' : '/uploads' //要上傳到的伺服器路徑,默認『/』
'muti' : true, //是否允許同時上傳多文件,默認false
'fileDesc' : 'rar文件或zip文件' //出現在上傳對話框中的文件類型描述
'fileExt' : '*.rar;*.zip', //控制可上傳文件的擴展名,啟用本項時需同時聲明fileDesc
'sizeLimit': 86400 //控制上傳文件的大小,單位byte
'simUploadLimit' :5 //多文件上傳時,同時上傳文件數目限制
});
});
</script>
上面列出了我認為常用的配置選項,此外還有很多參數可配置,參考官方文檔
通過調用相關功能函數,聲明功能按鈕。
例如聲明上傳功能按鈕(自動上傳時不需要):
<a href="javascript:$('#fileInput').fileUploadStart();">上傳文件</a>
聲明取消多文件上傳時上傳隊列:
<a href="javascript:$('#fileInput').fileUploadClearQueue();">取消上傳隊列</a>
文章來自中國建站:http://www.jz123.cn/text/2419333.html
Ⅷ php上傳文件如何實現上傳頭像的時候可以顯示出頭像
兩種方案:
前端直接使用 FileReader可以直接讀取圖片在前端顯示,可以在用戶點擊確定後再通過 ajax上傳到後端(當然,你也可以直接通過 form表單 submit提交)
用戶點擊上傳文件的時候,直接用 ajax把圖片是傳到後端,後端回傳圖片在伺服器中的地址,前端把這個圖片顯示出來。
Ⅸ 求一款jQuery或js多圖上傳插件
你好,你的問題其實包含三個方面。
一個是前端非同步上傳還是同步上傳,關於非同步上傳,方案有很多種,ajax或者iframe。這類插件也很多,如Uploadify,但一般比較大,個人覺得有點殺雞用牛刀的感覺,給你推薦一款筆者自己寫的的插件,jquery.attach.js,本身才3kb不到,支持zip/rar/mp4/mp4/png/jpg/bmp等。下載地址 http://www.imwinlion.com/archives/143
另一個是多圖上傳,多圖可以上傳本質上是多個單圖上傳問題,像這種,kindeditor 的多圖上傳插件,網路的uedit 多圖上傳插件,都可以解決問題,swfupload也可以。
最後是後端處理程序,如果你是thinkphp 寫的,可以用thinkphp 的upload 包。
希望對你有幫助
Ⅹ 移動端網頁如何使用JqueryMobile+PHP實現上傳圖片的功能
<html>
<body>
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
</body>
</html>
<?php
if($_FILES["file"]["error"]>0)
{
echo"Error:".$_FILES["file"]["error"]."<br/>";
}
else
{
echo"Upload:".$_FILES["file"]["name"]."<br/>";
echo"Type:".$_FILES["file"]["type"]."<br/>";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb<br/>";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
?>