上傳文件的通用做法
<form method="post" name="form" action="your.php" enctype="multipart/form-data">
<input type='text' name='yourname' />
<input type='file' name='myfile' />
<input type='submit' name='submit' value='submit' />
</form>
此時在your.php中使用$_FILES['myfile']可以接收,使用$_FILES['myfile']['name']可以得到文件名,后續(xù)按照自己的思路處理。
但在header中如果你引用了
<script src="js/jquery.mobile-1.4.5.min.js"></script>
則無論怎么操作都會發(fā)現(xiàn)在dev tool中顯示傳輸?shù)氖莂pplication/x-www-form-urlencoded,而不是你所期望的Multipart/form-data,在各種嘗試后,發(fā)現(xiàn),只要注釋了jQueryMobile,就可以正常上傳文件。所以問題出在jQueryMobile上。
查找資料后發(fā)現(xiàn),jQueryMobile默認(rèn)以ajax處理form,所以應(yīng)該在form上禁用ajax(data-ajax="false")以按照html邏輯提交即可。
<form method="post" name="form" action="your.php" enctype="multipart/form-data" data-ajax="false">
至此,問題解決,記錄下。