如何让php在网页中显示非public文件夹下的图片

刚刚接触php,之前都把资源放在public下,最近发现放到public下的资源很容易被别人下载到,所以自己建了一个目录放在和public目录同级上,防止别人能够下载到资源。但是后来发现,我又需要在浏览器中显示这些资源图片,我该怎么写路径呢?或者有什么其它方法可以保护资源不被别人下载的。用的是laravel框架,求大虾指导一下。

2个回答

几乎很那实现,可以采用一点点技术手段 ,屏蔽右键鼠标右键
document.oncontextmenu=function() {
return false;
}

u012691505
下雨天没带雨伞 什么意思?
大约 3 年之前 回复

有没有可能,能把public的路由改了,当有人输入http:xxx.xxx.jpg的时候,不会跳转。必须得输入自己规定的例如http://123.xxxjpg,才能看到

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
thinkPHP5.0 入口 卡在public 里文件夹下进不去下一个文件
thinkPHP5.0 输入127.0.0.1进不去入口文件 http://127.0.0.1/jqxm/thinkphp5.0/public/homepage.html http://127.0.0.1/jqxm/thinkphp5.0/public/adout.html 一直卡在public文件夹下 报错 Not Found The requested URL /jqxm/thinkphp5.0/public/homepage.html was not found on this server. 如果手动输地址可以进入 http://127.0.0.1/jqxm/thinkphp5.0/public/index.php/index/index/contact.htm 之前用一行代码来测试过也没事 这是入口的事 还是什么
请教: thinkphp5 静态文件夹下的js文件 ,关于 背景图片地址 url 问题
1.静态网页上写的一级导航li hover 时,显示新的div,并将该div里的其中一个div的背景图修改,在静态页面下是正常的,代码如下: $('#wxsan').hover(function(){ $('.fudongding').css('background-image','url(img/fdding0.png)'); $('#wxsan_neirong').toggle(); }); $('#wxsan_neirong').mouseenter(function(){ $('#wxsan_neirong').toggle(); }); 2.移植到TP框架后,img,css,js文件,都放在项目static\qianduan\下了, program\public\static\qianduan\js, program\public\static\qianduan\css, program\public\static\qianduan\img, (jq.min.js也引用了)。 3.问题是 http://localhost/program/public/static/qianduan/img/001.png(能正常显示前端的图片链接); js操作:(鼠标经过,新div显示且里面的背景图变化) http://localhost/program/public/index.php/qianduan/img/fdding0.png (url错误,图片找不着) 怎么修改js文件,才能正常?请教大师指点!
thinkphp index控制器发送到public下left页面,但页面跳转之后接收不到了。
用thinkphp方法做后台,后台中有left页面,是放在public文件夹中的,左侧分为“数据统计,用户分析,消息管理,反馈管理”等部分,每一个都是对应一个不同的控制器,并且每一部分还对应自己的子菜单,又对应各自的方法,现在的问题是,点击其中的某部分下的某子菜单,页面跳转,但是左侧部分就消失了,因为跳转到了其他控制器,而其它控制器的index方法中又不存在对数据表的遍历,所以显示为空的。想知道怎么破?
这两个PHP文件路径区别在哪啊
shang't ``` $path = "a\b\\{$className}".".php"; ``` 主要是上面这条路径,使用use也不能访问被namespace封装后的代码, 未进行封装的代码倒是可以 下面这条倒是所有都可以访问 想知道原因 ``` $path = $className.".php"; ``` 附上全部代码 ``` //test1的 <?php class test1 { public function echo() { echo "this is class Test in a\b\c"; } } ?> ``` ``` //test2的 <?php namespace a\b; class test2 { public function echo() { echo "this is class Test2 in a\b"; } } ?> ``` ``` //第一种文件路径的 <?php function loader1($className) { echo "$className<hr/>"; $path = "a\b\\{$className}".".php"; if(file_exists($path)){ require_once($path); }else{ echo"file:{$path} is not exsists<hr/>"; } } spl_autoload_register('loader1'); $t = new test1(); $t -> echo(); ?> ``` ``` //第二种文件路径的 <?php spl_autoload_register(function($className){ echo "$className <hr/>"; $path = $className.".php"; if(file_exists($path)){ require_once($path); } else { echo "file: {$path} is not exsists<hr/>"; } }); use a\b\test2; $t2 = new test2(); $t2-> echo(); echo "<hr/>"; $t3 = new test1(); $t3 -> echo(); ?> ``` a,b文件夹已经在站点根目录下建立。
thinkPHP5中html文件的action 如何写?
新手使用tp5,我将public文件夹底下的index.php 入口文件移到了项目根目录下,以便域名+项目名就可以直接访问入口文件。 入口文件我没有做任何编辑就是默认的两行: define('APP_PATH', __DIR__ . '/application/'); require __DIR__ . '/thinkphp/start.php'; 从入口文件进到登陆的控制器login/controller/Login.php,控制器渲染输出的是登陆的login/view/login/login.html画面如图 ![图片说明](https://img-ask.csdn.net/upload/201812/21/1545359253_405084.jpg) ,在登陆画面我提交表单访问与Login.php 同路径的home.php![图片说明](https://img-ask.csdn.net/upload/201812/21/1545359513_477632.jpg) 表单提交后地址是:http://localhost/iar/home.php; 错误讯息是: The requested URL /iar/home.php; was not found on this server. 新手请教,谢谢
CI下引入类库资源PHPPowerPoint报出“ Cannot redeclare class”
**CI框架下引入类库资源PHPPowerPoint报出“ Cannot redeclare class IOFactory”** 在CI框架下application/library下引用phpWord已经实现了导出word,但我在引入PHPPowerPoint时,总是提示重复申明IOfactory。PHPPowerPoint在没引入框架前,自己写的demo是可以实现导出ppt的。 我是这样安装PHPWord和PHPPowerPoint的: 1) 解压压缩包里的Classes文件夹中的内容到applicationlibraries目录下,目录结构如下: -- applicationlibrariesPHPPowerPoint.php -- applicationlibrariesPHPPowerPoint(文件夹) 2)控制器调用语句如下: $this->load->library('PHPPowerPoint'); $this->load->library('PHPPowerPoint/IOfactory'); 3)已经尝试过修改applicationlibrariesPHPPowerPointIOFactory.php 文件 --将其文件名改为Iofactory.php -- 将其类名从PHPPowerPoint_IOFactory改为Iofactory。 -- 将其构造函数改为public -----------php报错的错误----------------- A PHP Error was encountered Severity: Compile Error Message: Cannot redeclare class IOFactory Filename: PHPPowerpoint/IOFactory.php Line Number: 47 Backtrace: ``` ```
Yaf框架路由访问路径无效
我在虚拟机上搭建了一个LNMP环境,基于php的yaf框架写了个小demo。nginx的配置文件如下所示: server { listen 8050; server_name www.myblog.com; root /usr/share/nginx/www.myblog.com/public/; index index.php index.html index.htm; location ~ .+\.php($|/) { root /usr/share/nginx/www.myblog.com/public/; fastcgi_pass 127.0.0.1:8051; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~.*\.(js|csss)?$ { root /usr/share/nginx/www.myblog.com/application/views/; } } 目前,如果直接访问域名,能访问到默认的index路径下的控制器内容。但controllers文件夹下的其他php文件,无法通过“域名/文件路径”的方式访问。求各位大神帮忙看看原因。。。多谢。。。
NGINX1.12+thinkphp配置完成后出现上传文件失败的问题
开发环境wamp上没有出现这个问题,移到生产环境(LNMP)上就出现不能上传文件的问题了,但是文件夹里确实已经出现文件了,现在不知道是怎么回事儿了,贴出NGINX的配置文件与报错日志,求大神解答 ![图片说明](https://img-ask.csdn.net/upload/201708/23/1503453953_242808.png) server { listen 80; server_name localhost; access_log /data/wwwlogs/test.clime.cc.log; error_log /data/wwwlogs/test.clime.cc_error.log; set $root /data/clime/public; index index.html index.htm index.php; #error_page 404 /404.html; #error_page 502 /502.html; location / { root $root; index index.html index.php; if ( -f $request_filename) { break; } if ( !-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } location ~ .+\.php($|/) { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name; include fastcgi_params; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ { root $root; expires 30d; access_log off; } } 报错日志: 2017/08/23 09:45:21 [error] 18105#0: *97 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined function think\finfo_open() in /data/clime/simplewind/thinkphp/library/think/File.php on line 133" while reading response header from upstream, client: 192.168.2.89, server: localhost, request: "POST /user/asset/webuploader.html?_ajax=1 HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "192.168.1.254", referrer: "http://192.168.1.254/user/Asset/webuploader?&multi=1&filetype=image&app=portal"
今天看到一个帖子,把对象存储oss集成到thinkPHP,将图片上传到oss里面
![图片说明](https://img-ask.csdn.net/upload/201611/30/1480494974_538322.jpg) 可以在阿里云网站下载oss的demo源代码PHP版:v2.0.5 https://help.aliyun.com/document_detail/32174.html?spm=5176.doc44688.6.375.MwiLwn 不过,阿里云的这个demo,用的是命名空间(命名空间具体功能我也没搞懂,各位自行百度,高手请路过),如要集成到thinkPHP里面需要修改下相关文件和命名空间,我已经整理好了。 第一步:将oss引入到tp框架里面,路径为: Thinkphp-->Library-->Org,将OSS文件夹放在org里面。 第二步:公共配置文件里面 //oss配置 "OSS_ACCESS_ID" => '', "OSS_ACCESS_KEY"=> '', "OSS_ENDPOINT" => '', "OSS_TEST_BUCKET" => '', "OSS_WEB_SITE" =>'', //上面4个就不用介绍了,这个OSS_WEB_SITE是oss的bucket创建后的外网访问地址,如需二级域名,可以指向二级域名,具体可以参考阿里云控制台里面的oss //oss文件上传配置 'oss_maxSize'=>1048576, //1M 'oss_exts' =>array(// 设置附件上传类型 'image/jpg', 'image/gif', 'image/png', 'image/jpeg', 'application/octet-stream',//阿里云好像都是通过二进制上传,似乎上面4个后缀设置起到什么用? ), 第三步:公共function里面 // 返回json function backJson($code,$info){ $arr['status']=$code; $arr['info']=$info; print_r(json_encode($arr)); exit; } //oss上传 /* *$fFiles:文件域 *$n:上传的路径目录 *$ossClient *$bucketName *$web:oss访问地址 *$isThumb:是否缩略图 */ function ossUpPic($fFiles,$n,$ossClient,$bucketName,$web,$isThumb=0){ $fType=$fFiles['type']; $back=array( 'code'=>0, 'msg'=>'', ); if(!in_array($fType, C('oss_exts'))){ $back['msg']='文件格式不正确'; return $back; exit; } $fSize=$fFiles['size']; if($fSize>C('oss_maxSize')){ $back['msg']='文件超过了1M'; return $back; exit; } $fname=$fFiles['name']; $ext=substr($fname,stripos($fname,'.')); $fup_n=$fFiles['tmp_name']; $file_n=time().'_'.rand(100,999); $object = $n."/".$file_n.$ext;//目标文件名 if (is_null($ossClient)) exit(1); $ossClient->uploadFile($bucketName, $object, $fup_n); if($isThumb==1){ // 图片缩放,参考https://help.aliyun.com/document_detail/44688.html?spm=5176.doc32174.6.481.RScf0S $back['thumb']= $web.$object."?x-oss-process=image/resize,h_300,w_300"; } $back['code']=1; $back['msg']=$web.$object; return $back; exit; } 第四步:控制器里的操作方法里面,例如控制器是Index, public function upPic(){ //oss上传 $bucketName = C('OSS_TEST_BUCKET'); $ossClient = new \Org\OSS\OssClient(C('OSS_ACCESS_ID'), C('OSS_ACCESS_KEY'), C('OSS_ENDPOINT'), false); $web=C('OSS_WEB_SITE'); //图片 $fFiles=$_FILES['pic_1']; $rs=ossUpPic($fFiles,'s',$ossClient,$bucketName,$web,0); if($rs['code']==1){ //图片 $img = $rs['msg']; //如返回里面有缩略图: $thumb=$rs['thumb']; }else{ $this->error('图片有误:'.$rs['msg']); return; } } 第五步:调用,文件域名pic_1,要与第四步里面的$_FILES['pic_1']一致。action地址为控制器的操作地址,例如:/index.php/Home/Index/upPic <meta charset="UTF-8"/> <form action="/index.php/Home/Index/upPic" enctype="multipart/form-data" method="post"> <input type="file" name="pic_1" value="" /> <input type="submit" value="上传"/> </form> 演示链接如下:http://www.erdangjiade.com/js/875.html
PHP zipArchive使用后不弹出下载框
请求头和响应 ![图片说明](https://img-ask.csdn.net/upload/201702/27/1488159740_23817.png) ![图片说明](https://img-ask.csdn.net/upload/201702/27/1488159887_776193.png) 将1.xlsx,2.xlsx打包压缩成压缩文件至down文件夹下,压缩成功,但下载不了 ![图片说明](https://img-ask.csdn.net/upload/201702/27/1488159880_899274.png) 前台代码: <div> <input type="button" id="export" value="导出"> </div> <script type="text/javascript"> $("#export").click(function(){ $.ajax({ url:'./index.php?act=export', type:'GET', success:function(data){ } }) }); </script> 后台代码: define('TMPL_PATH','../ZipFile/'); define('DOWN_PATH',TMPL_PATH.'down'); if($_GET['act']=='export'){ $zip = new ZipArchive(); $zipName = DOWN_PATH.'/zipFile_'.date("YmdHis").'.zip'; //生成压缩文件 if ($zip->open($zipName, ZIPARCHIVE::CREATE) === TRUE) { //文件路径 $arr = array(TMPL_PATH.'1.xlsx',TMPL_PATH.'2.xlsx'); foreach($arr as $path){ //判断文件是否存在 basename函数使压缩文件内部路径为文件名称 if(is_file($path)){ $zip->addFile($path,basename($path)); } } $zip->close(); } if(!file_exists($zipName)){ exit("无法找到文件"); } header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename='.basename($zipName)); //文件名 header("Content-Type: application/zip"); //zip格式的 header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件 header('Content-Length: '. filesize($zipName)); //告诉浏览器,文件大小 @readfile($zipName); exit; } 求各位大神指教
php压缩zip 在win7下,7-zip打不开,但是winrar和好压等都能打开
用过zip修复工具 修复之后7-zip就能打开了 但是希望不修复也可以用7-zip打开 求帮助 ``` <?php $log = "/work/log/logbook.zip"; $dir="/work/log"; $del_Log=unlink($log);//删除原有logbook.zip //重新生成新logbook.zip class HZip { private static function folderToZip($folder, &$zipFile, $exclusiveLength) { $handle = opendir($folder); while (false !== $f = readdir($handle)) { if ($f != '.' && $f != '..') { $filePath = "$folder/$f"; // Remove prefix from file path before add to zip. $localPath = substr($filePath, $exclusiveLength); if (is_file($filePath)) { $zipFile->addFile($filePath, $localPath); } elseif (is_dir($filePath)) { // 添加子文件夹 $zipFile->addEmptyDir($localPath); self::folderToZip($filePath, $zipFile, $exclusiveLength); } } } closedir($handle); } /** * Zip a folder (include itself). * Usage: * HZip::zipDir('/path/to/sourceDir', '/path/to/out.zip'); * * @param string $sourcePath Path of directory to be zip. * @param string $outZipPath Path of output zip file. */ public static function zipDir($sourcePath, $outZipPath) { $pathInfo = pathInfo($sourcePath); $parentPath = $pathInfo['dirname']; $dirName = $pathInfo['basename']; $sourcePath=$parentPath.'/'.$dirName;//防止传递'folder' 文件夹产生bug $z = new ZipArchive(); $z->open($outZipPath, ZIPARCHIVE::CREATE);//建立zip文件 //$z->addEmptyDir($dirName);//建立文件夹 self::folderToZip($sourcePath, $z, strlen("$parentPath/")); $z->close(); } } //使用方法 HZip::zipDir($dir, $log); //下载zip包 $file_name="logbook.zip"; //$file_name=iconv("utf-8","gb2312",$file_name); $file_path="/work/log/logbook.zip"; if(!file_exists($file_path)) { echo "没有该文件文件"; return 0; } $fp=fopen($file_path,"r"); $file_size=filesize($file_path); Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length:".$file_size); Header("Content-Disposition: attachment; filename=".$file_name); $buffer=1024; $file_count=0; while(!feof($fp) && $file_count<$file_size) { $file_con=fread($fp,$buffer); $file_count+=$buffer; echo $file_con; } fclose($fp); ?> ```
使用http put把本地文件上传到服务器的的时候碰到的问题
各位好,我在用libcurl的接口往localhost服务器上传文件里上传文件的时候出现了下面的错误(用的机器系统是linuxmint17,搭建的服务器Apache + PHP5 + MySQL) *** We read 4257 bytes from file <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>405 Method Not Allowed</title> </head><body> <h1>Method Not Allowed</h1> <p>The requested method PUT is not allowed for the URL /index.html.</p> <hr> <address>Apache/2.4.7 (Ubuntu) Server at localhost Port 80</address> </body></html> 上传程序的源码是: /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include <stdio.h> #include <fcntl.h> #include <sys/stat.h> #include <curl/curl.h> /* * This example shows a HTTP PUT operation. PUTs a file given as a command * line argument to the URL also given on the command line. * * This example also uses its own read callback. * * Here's an article on how to setup a PUT handler for Apache: * http://www.apacheweek.com/features/put */ static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream) { size_t retcode; curl_off_t nread; /* in real-world cases, this would probably get this data differently as this fread() stuff is exactly what the library already would do by default internally */ retcode = fread(ptr, size, nmemb, stream); nread = (curl_off_t)retcode; fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T " bytes from file\n", nread); return retcode; } int main(int argc, char **argv) { CURL *curl; CURLcode res; FILE * hd_src ; struct stat file_info; char *file; char *url; if(argc < 3) return 1; file= argv[1]; url = argv[2]; /* get the file size of the local file */ stat(file, &file_info); /* get a FILE * of the same file, could also be made with fdopen() from the previous descriptor, but hey this is just an example! */ hd_src = fopen(file, "rb"); /* In windows, this will init the winsock stuff */ curl_global_init(CURL_GLOBAL_ALL); /* get a curl handle */ curl = curl_easy_init(); if(curl) { /* we want to use our own read function */ curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); /* enable uploading */ curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); /* HTTP PUT please */ curl_easy_setopt(curl, CURLOPT_PUT, 1L); /* specify target URL, and note that this URL should include a file name, not only a directory */ curl_easy_setopt(curl, CURLOPT_URL, url); /* now specify which file to upload */ curl_easy_setopt(curl, CURLOPT_READDATA, hd_src); /* provide the size of the upload, we specicially typecast the value to curl_off_t since we must be sure to use the correct data size */ curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)file_info.st_size); /* Now run off and do what you've been told! */ res = curl_easy_perform(curl); /* Check for errors */ if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); /* always cleanup */ curl_easy_cleanup(curl); } fclose(hd_src); /* close the local file */ curl_global_cleanup(); return 0; } 请问这个问题是什么问题呢,如果是与服务器相关的权限问题,那这方面的东西又是怎么去配置的呢? 另外还有一个问题,上传到服务器上的文件路径是怎么设定的呢,默认的路径是/var/www/html/这个文件夹吗?
【求助】webclient下载文件时 报System.Net.WebException: 操作超时”
``` using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace SH600004Quickly { class Program { static void Main(string[] args) { WebClient webClient = new WebClient(); ServicePointManager.DefaultConnectionLimit = 100; string Start = "2010年04月13日"; string End = "2013年12月31日"; DateTime dtStart = DateTime.Parse(Start); DateTime dtEnd = DateTime.Parse(End); int Days = (dtEnd - dtStart).Days + 1;//相隔天数 string strPath = "F:\\gupiao111111\\"; string Stockid = "600000"; //string aFirstName = args[0].Substring(args[0].LastIndexOf("\\") + 1, (args[0].LastIndexOf(".") - args[0].LastIndexOf("\\") - 1)); for (int i = 0; i < Days; i++) { string url = null; string sDay = dtStart.AddDays(i).ToString("yyyy-MM-dd"); //每一天 url = "http://market.finance.sina.com.cn/downxls.php?date=" + sDay + "&symbol=sh" + Stockid; Console.WriteLine(url); DirectoryInfo stockDir = Directory.CreateDirectory(strPath + sDay); string dataDir = stockDir.FullName + "\\data.txt"; webClient.DownloadFile(url, dataDir); //webClient.Dispose(); //WriteStr2FileEnd("C:\\Users\\T.Yang\\Desktop\\errorLog.txt", sDay + " " + aFirstName); //strPath = "F:\\gupiao111111\\"; } //将每个文件夹里的文件用bat处理 } public static void WriteStr2FileEnd(String filename, String content)//自动换行写入 { FileStream fsLineNo = new FileStream(@filename, System.IO.FileMode.OpenOrCreate, FileAccess.Write); fsLineNo.Seek(fsLineNo.Length, SeekOrigin.Begin); StreamWriter swLineNo = new StreamWriter(fsLineNo); swLineNo.WriteLine(content); swLineNo.Close(); fsLineNo.Close(); } } } ``` 每次下载几个文件后,就卡在那不动了,怎么办?
CI整合smarty3报错,大神进来帮忙看下
配置文件: ``` <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); $config['theme'] = 'default'; $config['template_dir'] = APPPATH . 'views'; $config['compile_dir'] = APPPATH . 'libraries/smarty/templates_c'; $config['cache_dir'] = APPPATH . 'libraries/smarty/cache'; $config['config_dir'] = APPPATH . 'libraries/smarty/configs'; $config['caching'] = false; $config['cache_lifetime'] = 60; $config['use_sub_dirs'] = false; //子目录变量(是否在缓存文件夹中生成子目录) $config['left_delimiter'] = '{'; $config['right_delimiter'] = '}'; ``` 类文件: ``` <?php if(!defined('BASEPATH')) EXIT('No direct script asscess allowed'); require_once(dirname(__FILE__) . '/smarty/Smarty.class.php'); class CI_Smarty extends Smarty { protected $ci; public function __construct(){ $this->ci = & get_instance(); $this->ci->load->config('smarty');//加载smarty的配置文件 //获取相关的配置项 $this->cache_lifetime = $this->ci->config->item('cache_lifetime'); $this->caching = $this->ci->config->item('caching'); $this->config_dir = $this->ci->config->item('config_dir'); $this->template_dir = $this->ci->config->item('template_dir'); $this->compile_dir = $this->ci->config->item('compile_dir'); $this->cache_dir = $this->ci->config->item('cache_dir'); $this->use_sub_dirs = $this->ci->config->item('use_sub_dirs'); $this->left_delimiter = $this->ci->config->item('left_delimiter'); $this->right_delimiter = $this->ci->config->item('right_delimiter'); } } ``` 访问报错: A PHP Error was encountered Severity: Notice Message: Trying to get property of non-object Filename: sysplugins/smarty_internal_templatecompilerbase.php Line Number: 334 Backtrace: File: /wx_code/application/libraries/smarty/sysplugins/smarty_internal_templatecompilerbase.php Line: 334 Function: _error_handler File:/wx_code/application/libraries/smarty/sysplugins/smarty_template_compiled.php Line: 199 Function: compileTemplate File: /wx_code/application/libraries/smarty/sysplugins/smarty_template_compiled.php Line: 98 Function: compileTemplateSource File: /home/myccf/site_codes/wx_code/application/libraries/smarty/sysplugins/smarty_template_compiled.php Line: 161 Function: process File: /wx_code/application/libraries/smarty/sysplugins/smarty_internal_template.php Line: 184 Function: render File: /wx_code/application/libraries/smarty/sysplugins/smarty_internal_templatebase.php Line: 199 Function: render File: /wx_code/application/libraries/smarty/sysplugins/smarty_internal_templatebase.php Line: 114 Function: _execute File: /wx_code/application/controllers/App.php Line: 24 Function: display File: /wx_code/index.php Line: 315 Function: require_once Fatal error: Call to a member function create() on a non-object in /home/myccf/site_codes/wx_code/application/libraries/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 334 A PHP Error was encountered Severity: Error Message: Call to a member function create() on a non-object Filename: sysplugins/smarty_internal_templatecompilerbase.php Line Number: 334 Backtrace: 求教哪里出问题了?
用file上传的服务器,存到数据库中
jsp :代码 ``` <div class="main"> <h2>添加商品</h2> <div class="manage"> <form enctype="multipart/form-data" method="post" action="/emw/XFL.do" > <table class="form"> <tr> <td class="field">商品名称:</td> <td><input type="text" id="spmic" class="text" name="productName" onblur="return check()"/></td> </tr> <tr> <td class="field">所属分类:</td> <td> <select name="parentId"> <% List<XLm> li=new XLmBizimpl().getAll(); for(XLm n:li){ %> <option value="<%=n.getXflid() %>"><%=n.getXflname() %></option> <% } %> </select> </td> </tr> <tr> <td class="field">商品图片:</td> <td><input type="file" id="photo" class="text" name="filepath" /></td> </tr> <tr> <td class="field">商品价格:</td> <td><input type="text" id="jiage" class="text tiny" name="jiage" onblur="return moing()" /> 元</td> </tr> <tr> <td class="field">库存:</td> <td><input type="text" id="kucun" class="text tiny" name="kuchun" onblur="return moing1()" /></td> </tr> <tr> <td class="field">条码号:</td> <td><input type="text" id="tiaoma" class="text" name="tiaoma" onblur="return moing2()"/></td> </tr> <tr> <td></td> <td><label class="ui-blue"><input type="submit" name="submit" value="添加" /></label></td> </tr> </table> </form> ``` sevlre: package com.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspFactory; import javax.servlet.jsp.PageContext; import com.biz.impl.GoodsBizimpl; import com.biz.impl.XLmBizimpl; import com.entity.Goods; import com.entity.XLm; import com.jspsmart.upload.Files; import com.jspsmart.upload.SmartUpload; public class XFL extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String productName=request.getParameter("productName"); int parentId=Integer.parseInt(request.getParameter("parentId")); //String filepath=request.getParameter("filepath"); //int jiage=Integer.parseInt( request.getParameter("jiage")); double jiage=Double.parseDouble(request.getParameter("jiage")); int kuchun=Integer.parseInt( request.getParameter("kuchun")); String tiaoma=request.getParameter("tiaoma"); //创建一个上传的组件 SmartUpload su = new SmartUpload(); //初始化SmartUpload对象(重) su.initialize(JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8*1024, true)); //pageContext上下文 -- application com.jspsmart.upload.File file = null; //非IO包下的File类 String filepath = null; com.jspsmart.upload.Request req = null; //定义允许上传类型 String allowed = "gif,jpg,png,txt"; //定义不许上传类型 String denied = "jsp,asp,php,aspx,html,htm,exe,bat"; //文件上传类型,二选一,一般会选择允许上传类型 //定义上传文件大小 int file_size = 5*1024*1024; //不能超过2M String exceptionMsg = null; //异常信息对象 //int i = 0; try { //定义允许上传文件类型 su.setAllowedFilesList(allowed); //不允许上传文件类型 su.setDeniedFilesList(denied); //单个文件最大限制 su.setMaxFileSize(file_size); //设置上传对象的编码 su.setCharset("utf-8"); //GBK GB2312 //执行上传(重) su.upload(); //路径 //得到单个上传文件的信息 //file = su.getFiles().getFile(0); //su.getFiles()获得所有文件对象 //su.getFiles()获得所有文件对象 Files f= su.getFiles(); //循环读取文件对象 for(int i=0; i<f.getCount(); i++){ //取文件对象 file=f.getFile(i); //判断是否有对象 if(!file.isMissing()){ //设置文件在服务器的保存位置 filepath = "upload\\"; //保存到一个upload的文件夹下 //filepath += file.getFileName(); //拼接文件名字 filepath += System.currentTimeMillis()+ file.getFileName().substring( file.getFileName().lastIndexOf(".")); //文件另存为 file.setCharset("utf-8"); //保存(重) file.saveAs(filepath, SmartUpload.SAVE_VIRTUAL); //上传模式 } } } catch (Exception e) { exceptionMsg = e.getMessage(); e.printStackTrace(); } response.getWriter().print(filepath); System.out.println(productName+" "+ parentId+" "+ filepath+" "+ jiage +" "+kuchun +" "+tiaoma); } } 错误:SEVERE: Servlet.service() for servlet [XFL] in context with path [/emw] threw exception java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at com.servlet.XFL.doPost(XFL.java:42) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) -- 问题:获取的值是空值
如何模拟登录带有验证码的网站 小弟在此先谢谢了 给个思路就可以
我要完成功能是模拟登录久游网 https://passport.9you.com/login.php 说明: 1. 提交的地址是https://login.passport.9you.com/identifyingCode.jsp 这是一个https的地址 牵扯到一些ssl,证书之类的东西. 但是jdk已经集成了的证书,所以就不需要考虑这些,可以当做http来处理.(这是我现在的理解,也可能不对) 2. 验证码是用户来输入的,暂时不考虑破解问题 3. 我用HttpAnalyzerStdV5(这是一个http截包工具,下载地址http://idc218.newhua.com/down/HttpAnalyzerFullV5_Trial.zip)对一次请求过程截包: 发现需要提交图中的这些数据 userName,password,identityingCode.就是用户名,密码,验证码, id,continue,userIP,s都是隐藏的数据可以从源文件中看的到, 但是最后的x和y的值看不到,我测试了几次发现他是鼠标在登陆按钮那个图片的坐标 我猜现在登陆不成功就是这里的问题,但是这两个值在form中和js中查看不到 4. 测试账号jiuyoumoni 密码111111 5. 我的这这样做的 a) 根据 https://login.passport.9you.com/identifyingCode.jsp 下载图片并记录他的cookie 这个值要填入下一个请求的地址中 b) 组织以下数据并提交的https://login.passport.9you.com/checkCode 这个时候X和Y的值无法确定,也不能随便填一个 我的QQ19739257 可以随时联系我   以下的可执行代码,运行的时候在c盘下面建立文件夹CheckCode 验证码放到这个文件夹里 import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.File; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Scanner; import javax.imageio.ImageIO; import javax.net.ssl.HttpsURLConnection; public class tempClass { public static void Login() { try { // 下载验证码到本地 URL url = new URL("https://login.passport.9you.com/identifyingCode.jsp"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); connection.setConnectTimeout(5000); connection.setReadTimeout(10000); ((HttpURLConnection) connection).setRequestMethod("POST"); connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)"); connection.connect(); String cookies = connection.getHeaderField("Set-Cookie"); if (cookies.indexOf(";") != -1) { cookies = cookies.substring(0, cookies.indexOf(";")); } File imgCodeFile = new File("c:\\CheckCode\\" + System.currentTimeMillis() + ".gif"); BufferedImage image = ImageIO.read(connection.getInputStream()); ImageIO.write(image, "gif", imgCodeFile); String checkCode = GetCheckCode(); System.out.println(checkCode); // 登录 //隐藏参数 String id = "SSO_PAY"; String s = "5384a672b08ac3e96ad534ac67e30442"; String userIp = "60.191.73.11";//这个是我的ip地址 到时候根据你自己的ip来填写 可以从form里查看值 String nextUrl = "http://pay.9you.com/funpay/checkstat.php"; nextUrl = URLEncoder.encode(nextUrl, "GBK"); //用户要输入值 String userName = "jiuyoumoni"; String password = "111111"; String identifyingCode = checkCode; //生成地址https://login.passport.9you.com/checkCode?id=SSO_PAY&s=5384a672b08ac3e96ad534ac67e30442&userIp=60.191.73.11&userName=zhao88zhao8&password=458458&identifyingCode=5pre String paramStr = "?" + "id=" + id + "&s=" + s + "&userIp=" + userIp + "&userName=" + userName + "&password=" + password + "&identifyingCode=" + identifyingCode; String loginUrl = "https://login.passport.9you.com/checkCode" + paramStr; System.out.println("请求地址:" + loginUrl); //根据 url = new URL("https://login.passport.9you.com/checkCode"); connection = (HttpsURLConnection) url.openConnection(); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); connection.setConnectTimeout(20000); connection.setReadTimeout(20000); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("Content-Length", String.valueOf(paramStr.length())); connection.setRequestProperty("Cookie", cookies); connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)"); connection.connect(); DataOutputStream dos = new DataOutputStream(connection.getOutputStream()); dos.writeBytes(paramStr); dos.flush(); dos.close(); int res = connection.getResponseCode(); if (res == 200) { BufferedReader in = new BufferedReader(new InputStreamReader( connection.getInputStream(), "GBK")); String retVal; while ((retVal = in.readLine()) != null) { System.out.println(retVal); } } } catch (Exception e) { System.out.println("code error"); } } private static String GetCheckCode() { Scanner sc = new Scanner(System.in); System.out.print("验证码在C:\\ImageCode目录下 ,请你查看并输入:"); String checkCode = sc.next(); System.out.println("您输入的验证码是:" + checkCode); return checkCode; } public static void main(String[] args) { tempClass.Login(); } }   以下是可执行代码
【求助】C#使用WebClient并行下载文件,为什么一开始可以下载,下载一会就不能下载了?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.Threading; using System.Threading.Tasks; using System.Diagnostics; namespace ParallelPerday { class Program { static void Main(string[] args) { string Start = "2010年1月1日"; string End = "2013年12月31日"; DateTime dtStart = DateTime.Parse(Start); DateTime dtEnd = DateTime.Parse(End); int Days = (dtEnd - dtStart).Days + 1;//相隔天数 string aFirstName = args[0].Substring(args[0].LastIndexOf("\\") + 1, (args[0].LastIndexOf(".") - args[0].LastIndexOf("\\") - 1));//取文件名为以6000,30,或00开头的文件名,不包括后缀,例如600004.txt,只要600004 Stopwatch watch = new Stopwatch(); watch.Start(); Parallel.For(0, Days, i => { WebClient webClient = new WebClient(); webClient.Proxy = null; string strPath = "F:\\Stock Data(2303)\\";//下载到本地的路径 string url = null; string sDay = dtStart.AddDays(i).ToString("yyyy-MM-dd"); //获得以2010年1月1日以后的每一天,如2010-1-31 if (aFirstName.Substring(0, 3).Equals("600") || aFirstName.Substring(0, 3).Equals("601")) { url = "http://market.finance.sina.com.cn/downxls.php?date=" + sDay + "&symbol=sh" + aFirstName;//下载的网址链接(拼接而成) strPath = strPath + "sh" + aFirstName + "\\"; } if (aFirstName.Substring(0, 3).Equals("300") || aFirstName.Substring(0, 2).Equals("00")) { url = "http://market.finance.sina.com.cn/downxls.php?date=" + sDay + "&symbol=sz" + aFirstName;//下载的网址链接 strPath = strPath + "sz" + aFirstName + "\\";//下载到本地的路径 } try { DirectoryInfo stockDir = Directory.CreateDirectory(strPath + sDay);//创建文件夹 string dataDir = stockDir.FullName + "\\data.txt";//下载到本地的路径 webClient.DownloadFile(url, dataDir); } catch (Exception) { Console.WriteLine(aFirstName + " " + sDay); } finally { webClient.Dispose(); } }); watch.Stop(); Console.WriteLine(string.Format("Normal For Cost Time:{0}", watch.ElapsedMilliseconds)); } public static void WriteStr2FileEnd(String filename, String content)//自动换行写入 { FileStream fsLineNo = new FileStream(@filename, System.IO.FileMode.OpenOrCreate, FileAccess.Write); fsLineNo.Seek(fsLineNo.Length, SeekOrigin.Begin); StreamWriter swLineNo = new StreamWriter(fsLineNo); swLineNo.WriteLine(content); swLineNo.Close(); fsLineNo.Close(); } } }
微信公众平台开发,php问题
我的目的是在微信里回复一个关键词,然后公众号就从指定文件夹的txt里获取相关信息并输出(以行为单位) 但是。。。每次到 $results=get_results($q);这条语句就不行了 求大神 ``` <?php define("TOKEN", "weixin"); $time_start = microtime(true); define('ROOT', dirname(__FILE__).'/'); define('MATCH_LENGTH', 0.1*1024*1024); //字符串长度 0.1M 自己设置,一般够了。 define('RESULT_LIMIT',100); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) { $wechatObj->valid(); }else{ $wechatObj->responseMsg(); } class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } function my_scandir($path){//获取数据文件地址 $filelist=array(); if($handle=opendir($path)){ while (($file=readdir($handle))!==false){ if($file!="." && $file !=".."){ if(is_dir($path."/".$file)){ $filelist=array_merge($filelist,my_scandir($path."/".$file)); }else{ $filelist[]=$path."/".$file; } } } } closedir($handle); return $filelist; } function get_results($keyword){//查询 $return=array(); $count=0; $datas=my_scandir(ROOT."kieoidfrwq!!1123@#fewf"); //数据库文档目录 if(!empty($datas))foreach($datas as $filepath){ $filename = basename($filepath); $start = 0; $fp = fopen($filepath, 'r'); while(!feof($fp)){ fseek($fp, $start); $content = fread($fp, MATCH_LENGTH); $content.=(feof($fp))?"\n":''; $content_length = strrpos($content, "\n"); $content = substr($content, 0, $content_length); $start += $content_length; $end_pos = 0; while (($end_pos = strpos($content, $keyword, $end_pos)) !== false){ $start_pos = strrpos($content, "\n", -$content_length + $end_pos); $start_pos = ($start_pos === false)?0:$start_pos; $end_pos = strpos($content, "\n", $end_pos); $end_pos=($end_pos===false)?$content_length:$end_pos; $return[]=array( 'f'=>$filename, 't'=>trim(substr($content, $start_pos, $end_pos-$start_pos)) ); $count++; if ($count >= RESULT_LIMIT) break; } unset($content,$content_length,$start_pos,$end_pos); if ($count >= RESULT_LIMIT) break; } fclose($fp); if ($count >= RESULT_LIMIT) break; } return $return; } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; $msgType="text"; set_time_limit(0); $q=strip_tags(trim($keyword); $results=get_results($q); $count=count($results); if(!empty($results)){ foreach($results as $v){ $contentStr =$contentStr.'From_['.$v['f'].']_Datas 。Content: '.$v['t'];}} $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo ""; exit; } } } ?> ```
动态生成html元素的问题。
<p>大家帮我看看下面代码有什么问题?动态生成的部分无法像写死部分代码那样正常运行。再有就是var fso = new ActiveXObject("Scripting.FileSystemObject");</p> <p>这个对象是不是不能在非IE内核下的浏览器正常运行呀。</p> <pre name="code" class="html"> &lt;script&gt; function searchFiles(){ var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder(document.all.fixfolder.value); var fc = new Enumerator(f.files); var tempArr=new Array(); for (;!fc.atEnd(); fc.moveNext()) { tempArr.push(fc.item()); } var o = document.body; var top = document.createElement("DIV"); var imgContainer = document.createElement("DIV"); var ul = document.createElement("UL"); top.appendChild(imgContainer); imgContainer.className = "img_container"; imgContainer.appendChild(ul); o.appendChild(top); var j= tempArr.length ; for (var i = 0; i &lt; j; i++) { var li = document.createElement("LI"); var link = document.createElement("A"); var img = document.createElement("IMG"); with (link) { href = tempArr[i]; rel="sexylightbox[group1]"; title = tempArr[i].name; } with (img) { src = tempArr[i]; } link.appendChild(img); li.appendChild(link); ul.appendChild(li); } } &lt;/script&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=GBK" /&gt; &lt;title&gt;my picture&lt;/title&gt; &lt;link rel="stylesheet" href="global.css" type="text/css" media="all" /&gt; &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="jquery.easing.1.3.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="sexylightbox.v2.3.jquery.min.js"&gt;&lt;/script&gt; &lt;link rel="stylesheet" href="sexylightbox.css" type="text/css" media="all" /&gt; &lt;script type="text/javascript"&gt; $(document).ready(function(){ SexyLightbox.initialize({color:'white'}); }); &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div &gt; &lt;h3&gt;Gallery&lt;/h3&gt; &lt;div class="img_container"&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="images\php_mysql.jpg" rel="sexylightbox[group1]" title="PHP y MySQL"&gt;&lt;img src="images/small_php_mysql.jpg" alt=""/&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="images/homerin2.jpg" rel="sexylightbox[group1]" title="D'oh!"&gt;&lt;img src="images/small_homerin2.jpg" alt=""/&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="images/clapclap.jpg" rel="sexylightbox[group1]" title="Clap clap!"&gt;&lt;img src="images/small_clapclap.jpg" alt=""/&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt; 指定文件夹:&lt;input type="text" name="fixfolder" value ="E:\test\images"&gt; &lt;input type="button" value ="搜索" onclick="searchFiles()"&gt; &lt;/body&gt; &lt;/html&gt; </pre> <p> 源码在下面。</p>
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
立即提问