windows 下jquery+ajax+php文件上传,linux+nginx+php+mysql 出问题..... 有个选择文件路径后js检测后缀的也不弹出了,提交后到不了 接受不到任何东西....wnmp下写的。
回复讨论(解决方案)
你给出的信息实在是太少了
windows 下jquery+ajax+php文件上传,linux+nginx+php+mysql 出问题..... 有个选择文件路径后js检测后缀的也不弹出了,提交后到不了 接受不到任何东西....wnmp下写的。
jquery
windows
……
html
<?php /****************************************** ajax上传入口 ******************************************/?> <!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><link href="styles/general.css" rel="stylesheet" type="text/css" /><link href="styles/main.css" rel="stylesheet" type="text/css" /><!--<link href="ajaxfileupload.css" type="text/css" rel="stylesheet">--><script type="text/javascript" src="Excel/jquery.js"></script><script type="text/javascript" src="Excel/ajaxfileupload.js"></script><script type="text/javascript"> function ajaxFileUpload() { var f_content = form.fileToUpload.value; var fileext=f_content.substring(f_content.lastIndexOf("."),f_content.length) fileext=fileext.toLowerCase() if(fileext == '') { alert('先选择文件'); return false; } if (fileext!='.csv') { alert("导入的文件,必须csv格式,重新选择!"); return false; } $("#loading") .ajaxStart(function(){ $(this).show(); }) .ajaxComplete(function(){ $(this).hide(); }); $.ajaxFileUpload ( { url:'buy_clothes_day_insert.php', secureuri:false, fileElementId:'fileToUpload', dataType: 'json', data:{name:'logan', id:'id'}, success: function (data, status) { if(typeof(data.error) != 'undefined') { /* if(data.error != '') { alert(data.error); } else { alert(data.msg); }*/ //50条插入完 if(data.msg == 1) { repeat_do_ajax(); }else if(data.msg == 2){ alert('无数据'); } } }, error: function (data, status, e) { //第一次post失败 alert(e); } } ) return false; } function repeat_do_ajax() { $.ajax({ //url:"doajaxfileupload.php", url:"buy_clothes_day_insert.php", type:"GET", dataType: 'json', data:{act:'input'}, success:function(data, status) { //还有数组重复ajax if(data.msg == 1){ //setInterval(repeat_do_ajax,1000); repeat_do_ajax(); }else if(data.msg == 0){ alert('成功导入本次所有数据!'); } }, error:function(data, status) { //防止数据库超时30后在继续 if(status == 'parsererror' || data.error == 'undefined') repeat_do_ajax(); //setInterval(repeat_do_ajax,3000); } }) }</script> </head><body><div id="wrapper"> <div id="content"> <h2 id="导入程序">导入程序</h2> <img src="/static/imghwm/default1.png" data-src="Excel/loading.gif" class="lazy" id="loading" style="max-width:90%" alt="windows 下jquery+ajax+php文件上传,linux下,出问题." > <form name="form" action="" method="POST" enctype="multipart/form-data"> <table cellpadding="0" cellspacing="0" class="tableForm" style="max-width:90%"> <thead> <tr> <th>选择csv文件</th> </tr> </thead> <tbody> <tr> <td><input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input"></td> </tr> </tbody> <tfoot> <tr> <td><button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">执行</button></td> </tr> </tfoot> </table> </form> </div></div> </body></html>
php
<?php /*do ajax */ date_default_timezone_set('Asia/Shanghai'); //第二次GET ajax请求 直接重复导入 if($_REQUEST['act'] == 'input') { return_show('0',check_data()); } $error = ""; $msg = ""; $fileElementName = 'fileToUpload'; if(!empty($_FILES[$fileElementName]['error'])) { switch($_FILES[$fileElementName]['error']) { case '1': $error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini'; break; case '2': $error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; break; case '3': $error = 'The uploaded file was only partially uploaded'; break; case '4': $error = 'No file was uploaded.'; break; case '6': $error = 'Missing a temporary folder'; break; case '7': $error = 'Failed to write file to disk'; break; case '8': $error = 'File upload stopped by extension'; break; case '999': default: $error = 'No error code avaiable'; } }elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none') { $error = 'No file was uploaded..'; }else { $msg .= " File Name: " . $_FILES['fileToUpload']['name'] . ", "; $msg .= " File Size: " . @filesize($_FILES['fileToUpload']['tmp_name']); //删除临时文件 //@unlink($_FILES['fileToUpload']); read_csv($_FILES['fileToUpload']['tmp_name']); } /*读取*/ function read_csv($filename) { $row = array(); $key = 0; setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','en_US.utf8')); $handle=fopen($filename,'r'); //$a = _fgetcsv($handle,1000,',','"'); while(!feof($handle) && $data=fgetcsv($handle,1000,',')) { $num = count($data); for($i = 0; $i < $num; $i++) { //if(!empty($data[$i])) $row[$key][$i] = iconv('GBK','utf-8',trim($data[$i])); } $key++; } fclose($handle); if(empty($row)) { return_show(2,2); }else{ //作insert $num = del_incomplete($row); //echo "<script>alert('Sucessed Input orderNum ".$num." !');</script>"; } } ?>
你能确认 js 代码被执行了吗?
你能确认 js 代码被执行了吗?
执行了js方法外面的alert可以弹 刚看到有个js undefined 以为大小写呢 还没找到问题
凭借我多年的经验判断...应该是JS问题.
你2个平台浏览器是否一致..浏览器是否一样.
var f_content = form.fileToUpload.value;
form能直接用?我感觉这种简写出的问题
然后 在看 是JS问题 还是PHP问题..
取消JS判断 试试可否上传成功.ajax触发处alert(1) ajax执行成功返回处alert(2)
分开测试方能解决问题
很有可能是 大小写的问题
单独来完成测试:
1、判断js获取表单对象是否成功;
2、判断提交结果的反馈,比如表单中不提交文件,只POST数据,判断PHP后端的POST全局数组的输出;
3、使用去掉JS之后的表单提交,看是否成功;
4、使用去掉JS之后的文件上传,看是否成功;(确保linux服务器上对应的目录有写权限)
凭借我多年的经验判断...应该是JS问题.
你2个平台浏览器是否一致..浏览器是否一样.
var f_content = form.fileToUpload.value;
form能直接用?我感觉这种简写出的问题
然后 在看 是JS问题 还是PHP问题..
取消JS判断 试试可否上传成功.ajax触发处alert(1) ajax执行成功返回处alert(……
这个var f_content = form.fileToUpload.value; 改了
现在还报错是:Uncaught SyntaxError: Unexpected end of input
chrome ie 都有...
解决了 因为返回json类型 不会返回具体错误 所以js改jquery取值后是没问题 (win下本来就没问题的),查到最后是因为运维的没建立对应表插不进报错。建表后一切正常了, 谢谢大家~~

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。