昨天做测试的时候遇到一个问题,做好的SWF在Flash AS3中调试通过,但是发布到html中之后就无法得到数据了。查了一些资料之后找到了解决办法。这里感谢 剑心 提供帮助,以及同事若水三千提供Java代码及日志记录。阅读全文
笔记本没串口RS232的接口,这样就启动不了ARM9实验箱,后来发现了用USB转串口的线解决阅读全文
怎么不是image/pjpeg呀,郁闷,我说桌面掉不出图片,类型不对。
怎么改成上传图片识别为image/pjpeg?是flash上传的缺陷?
$_FILES
Array
(
    [Filedata] => Array
        (
            [name] => 7378.jpg
            [type] => application/octet-stream
            [tmp_name] => /tmp/phpRxNdJ6
            [error] => 0
            [size] => 1244385
        )

)

进来时 $_FILES 都错了,明白了,我以为是我的程序问题!!!

$typeMap = array ('image/gif' => 'gif', 'image/jpeg' => 'jpg', 'image/png' => 'png','image/pjpeg'=>'jpg','application/octet-
stream'=>'jpg');
问题:
    如果你的Firefox升级到了最新版,同时也再使用Flash Debug Player对Flash和Flex应用程序进行调试,那么你应该已经注意到Firefox3.6.6支持插件的方式发生了改变。
今天我不是来警告你的,而是让你避免这个错误继续愉快的工作。Firefox控制进程、关闭进程是因为它发现了一些错误的东西。这一操作使你的插件完全无法工作从而阻止你进行程序调试。
这同时也产生了一个问题,因为任何一个不会正确地处理错误并抛出空对象的网站都会导致Flash插件失效。
解决:
    你需要进入Firefox的配置设置项并找出dom.ipc.plugins.enabled.npswf32.dll,双击它使之无效。同时你也要把dom.ipc.plugins.timeoutSecs设为-1。现在,重启你的浏览器,一切OK。
虽然Drupal核心的运行只需要你的服务器分配8MB的内存,但是根据你站点上使用的模块数量,你可能需要增加些内存分配。当你访问?q=admin/moudles时会加载你站点上的所有模块,不管你是否启用。如果你出现了白屏,你只有两个选择:增加分配给PHP的内存,或者删除不使用的模块。

根据你的主机的不同,有几个地方都可以完成这个配置,一般是php.ini,或者htaccess,具体要看你的主机状态。
比如:

在你的php.ini文件里设置memory_limit = 12M(推荐使用,如果你拥有这个权限的话)
在你的sites/default/settings.php文件里设置ini_set('memory_limit','12M');
在你的Drupal根目录下的.htaccess文件中设置php_value memory_limit 12M
你需要做点试验来确定最适合你的值。
阅读全文
这里直接是取主场景上的BitmapData,场景上的任何对象将最终转为图片,值得注意的是stage.width为场景上绘制对象的宽,而非整个场景的宽,PNGEncoder是来自adobe的官方的类库,可将图片转为BitmapData,它支持转jpg格式,并可以设置图片精度,不过png支持透明,颜色更棒!你可以在http://code.google.com/p/as3corelib/下载到这个类库:corelib ActionScript 3 Library,我的程序就用到了com.adobe.images下的3个类BitString.as、JPGEncoder.as、PNGEncoder.as

#
import com.adobe.images.*;
#
import flash.net.*;
#
import flash.display.*;
#
import flash.utils.ByteArray;
#
var myBitmapData:BitmapData=new BitmapData(stage.width,stage.height,true,0);
#
myBitmapData.draw(stage);
#
//var jpegEnc:JPGEncoder= new JPGEncoder(100);
#
//var dat:ByteArray = jpegEnc.encode(myBitmapData);
#
var dat:ByteArray = PNGEncoder.encode(myBitmapData);
#
var req:URLRequest = new URLRequest( "http://localhost/img/psavepic.php");
#
req.data = dat;
#
req.method = URLRequestMethod.POST;
#
req.contentType = 'application/octet-stream ';
#
var loader:URLLoader = new URLLoader();
#
loader.addEventListener(Event.COMPLETE, completeHandler);
#
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
#
function completeHandler(event:Event):void{
#
trace("图片上传成功");
#
}
#
function errorHandler(event:IOErrorEvent):void{
#
trace("图片上传失败");
#
}
#
loader.dataFormat = URLLoaderDataFormat.BINARY;
#
loader.load(req);


savepic.php获得从flash传过来的图片数据,写入到文件,数据有点特别,所以$_REQUEST是取不到,要用$HTTP_RAW_POST_DATA,当然也可以用jsp、asp、asp.net来实现,不过就没有php的代码简单高效了!i like php!

   1.
      <?php
   2.
      if(isset($HTTP_RAW_POST_DATA)){
   3.
      $name =time().'.jpg';
   4.
      $im = fopen($name,'a');
   5.
      fwrite($im,$HTTP_RAW_POST_DATA);
   6.
      fclose($im);
   7.
      }
   8.
      ?>



    public function SaveFlashJpgOrGif(array $data)
    {
        $input = $this->parseFormParams($data['input']);
        $qq = ".".$input['FQQ'];
        $uploadPicKinds = ".".$input['uploadPicKinds'];
        if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
        {
            $jpg = $GLOBALS["HTTP_RAW_POST_DATA"];
        }else
        {
            //failed
            echo "HTTP_RAW_POST_DATA is Empty";
            exit;
        }
        $path = ROOT_PATH."view/data/";
        $fileName = $qq.date("Y_m_d_H_i_s").$uploadPicKinds; //QQ+date  
        $filename=$path.$fileName;
        file_put_contents($filename,$jpg);
        $this->set(__CLASS__."_".__FUNCTION__,$fileName);


    }


来源:http://hi.baidu.com/jhmis/blog/item/68a0fd2ab89567f2e7cd4030.html
继续参考:http://www.04js.cn/content.asp?id=1097

调试另外一种post的上传方式:首先是打印$_FILE后去接受变量即可!

<?php
$str="sdfsafasdfasdfa";
$len=strlen($str);
header("ContentType:APPLICATION/OCTET-STREAM");
header("Content-Disposition:attachment;filename=Test.htm");
header("Content-Length:$len");
echo $str;
?>

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

<?php
/**
     * 功能:    套接字
     * 作者:    qh663
     * 参数:   string  $url           网址,如:[url]http://qh8.net/php/index.php?abc=123[/url]
     * 参数:   bool    $get_header    是否返回header标头
     * 参数:   bool    $real_url   用于测试网址是否正确
     * 返回:   bool/string
     */
    function socket($url, $get_header = false,$real_url = false){
        $arr = explode('/',$url);
        $host = $arr[2];
        unset($arr[0], $arr[1], $arr[2]);
        $path = '/'.implode('/', $arr);
        unset($arr);
        $service_port = getservbyname('www', 'tcp');
        $address = gethostbyname($host);
        $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if ($socket >= 0) {
            $result = socket_connect($socket, $address, $service_port);
            if ($result >= 0) {
                $in = "HEAD $path HTTP/1.1\r\n";
                $in .= "Host: $host\r\rn";
                $in .= "Connection: Close\r\n\r\n";
                socket_write($socket, $in, strlen($in));
                if($real_url){
                    if(strpos(socket_read($socket, 15), '200')) return true;
                }elseif($get_header){
                    while ( $out = socket_read($socket, 512)){
                        $re .= $out;
                    }
                    return $re;
                }
                socket_close($socket);
            }
        }
        return false;
    }
?>

//test1 发送一个socket,多线程
//(此例在当前目录新建5个文件 1_tmp.txt、2_tmp.txt、3_tmp.txt、4_tmp.txt、5_tmp.txt)
if(empty($_GET['str'])){
        $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
        while ($a++ < 5){
                socket("$url?str={$a}_tmp.txt");
        }
} else {
        fopen($_GET['str'], "w");;
        die();
}

$u = 'http://down1.sz1001.net/up/小型软件2_0810/TomatoGhostXP.rar';
echo "<pre>";

//test2 返回一个地址的header,实验证明运行速度比get_headers更快
echo socket($u,true);

//test3 测试页面是否存在,实验证明运行速度比get_headers更快
echo socket($u,true,true) ? "\n网址正确": "\n网址错误";
文章引用自:http://www.phpx.com/happy/thread-119670-1-1.html

<?php

//设置文件头;
Header("Content-type: image/PNG");

function make_rand($length="32"){//验证码文字生成函数
    $str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    $result="";
    for($i=0;$i<$length;$i++){
        $num[$i]=rand(0,61);
        $result.=$str[$num[$i]];
    }
    return $result;
}
$checkcode = make_rand(5);

//生成验证码图片;
$im = imagecreate(60,22);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);

imagefill($im, 68, 30, $gray);

$text = $checkcode;
$font = 'c:\\WINDOWS\\Fonts\\arial.ttf';

for ($i=0;$i<strlen($text);$i++)
{
    $tmp =substr($text,$i,1);
    $array = array(-1,1);
    $p = array_rand($array);
    $an = $p*mt_rand(1,20);//角度
    $size = 10;
    imagettftext($im,$size,$an,10+$i*$size,15,$white,$font,$tmp);
}

//将五位验证码绘入图片;
//imagestring($im, 5, 8, 3, $checkcode, $black);

//加入干扰象素;
$count = 150;//干扰像素的数量
for($i=0; $i<$count; $i++){
    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
//以PNG格式将图像输出到浏览器或文件;
ImagePNG($im);

//销毁一图像,释放与image关联的内存;
ImageDestroy($im);
?>



来源:http://blog.sina.com.cn/s/blog_53fa176f01008tby.html
服务器apache有一模块可以自动生成一个cookie,但是此模块必须要在特定的域名下A才可以。但是现在要在B域名下使用此cookie,没有办法只好中转一次了。结合php和js实现在B域名下设置cookie。
A下建立一个php文件:

<?php
echo "cookiename = \"" .$_COOKIE[' cookiename']. "\";";
?>

B下用js获取并设置Cookie

<script src = "http://www.a.com/cookie.php"></script>
<script>
function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg)) return unescape(arr[2]);
    else return null;
}
function SetCookie(sName, sValue)
{
    document.cookie = sName + "=" + escape(sValue) + "; expires=Tue, 02 Jun 2037 20:00:00 GMT";
}
if (!getCookie("cookiename"))
{

    SetCookie("cookiename ",cookiename);
}
</script>

这样就会在B下生成和A域名同样的cookies了。

本来的考虑是在b域名下也用php设置cookies。但是在服务器上用php读取http://www.a.com/cookie.php,是服务器获取的cookie,并不是每个客户自己获取的cookie,所以暂时只是想到这个办法。
来源:http://blog.sina.com.cn/s/blog_53fa176f01008tbx.html
虚拟机 :VMware.Workstation.v7.0
Guest operating system 'fedora' is not supported.
Please select a guest operating system from the General page on the Options tab of Virtual Machine Settings.
1 选择,稍后安装系统
2 选择red hat linux
3点击customize hardware
4  加入fc系统
完成,这样就可以了,power on ,ok
来源:http://blog.163.com/prevBlogPerma.do?host=sunkesheng@126&srl=3600917420104260226475&mode=prev


终于有了替代Visio的免费软件—— EDraw Mind Map(主页|视频教程|功能示意图)。这款于2007年10月最新发布 V1.0的国产免费软件,终结了流程图软件“好用则价高,免费则难用”的局面。它体积小巧、功能丰富、作为免费软件,完全可以满足普通用户绘制流程图的需求。
|出品公司:EDraw Soft
|当前版本:V1.0(2007-10-11)
|下载链接:EDrawMindMap.exe 7.8MB

下载:http://xbeta.info/edraw-guide.htm

亿图图示专家 ((EDraw Max) V4.6 绿色版
http://www.zhuaijun.cn/archives/category/waitrruby
http://hi.baidu.com/duangr/blog/item/45b57f2634fa12108a82a14f.html

做自动化测试也有一年多了,回想起来觉得这一年收获很多。写在这里鞭策一下自己。
  最初接触自动化测试是QTP + VBS来实现的,描述性编程只体会到了一点点就拿来反复的用,当时也就知道如何去让脚本代替手动去测一些需要回归的东西。最主要的是框架的搭建,至于如何实现其实并不是太难。VBScript的语法并不复杂,不过这是相对于有一定编程经验的人来说的。因为语言通常是这样,一通百通。看一下,记住语法规则和特征就差不多可以用了。而且vbs的语法相对简单,建议新手可以通过这样的方式入门,因为如果不会写,可以用QTP的录制功能先录一遍,然后再模仿着写一些脚本去运行,看看能否替代录制的脚本去执行动作。这个阶段最大的失误就是没有仔细去看经理搭建的自动化测试框架。
  后来因为公司业务的需要,在新的项目中改用了celerity+JRuby+cucumber来做自动化,初次接触ruby,经理给我们培训了2周就开始做了。由于celerity和cucumber是新加坡的GTO推荐的开源测试工具,是一个很新的工具,国外的版本才0.3,所以国内几乎找不到资料,全部要去国外网站找(就算是国外,用的人也不多),一开始确实困难重重。不过celerity这个工具用的蛮爽,无界面,全部加载到内存中运行,速度超快(尤其在用了watir以后感受更深),只不过对弹出的对话框没有很好的解决办法(这也是后来另外一个项目改用watir的原因之一),做了两个月以后,因为工作安排的需要,我又被调去做新的项目的自动化测试,初次接触watir。
    说来也有趣,当时仍然打算用celerity来做,但是发现celerity对Ajax形成的页面支持的不好,因为celerity读取页面是一下加载到内存中的,对于需要服务器响应生成页面的形式,不太感冒。于是向经理推荐了watir这款工具。watir这款工具总的来说挺好的,虽然工具本身还是存在一定的bug的,比如waitr 1.6.5对click_no_wait的支持反而没有1.6.2的好,但是也有对应的方法去解决了。如果有大牛能通过修改源码来解决这个问题,就真是造福于民了。之前想了很多总结性的话,现在脑子又混乱了。大家就当看着好玩吧。
    收获:工作2年多了,觉得在工作中学到的知识非常非常多。专业知识,沟通技巧,独立解决问题的能力,团队合作能力,英语交流等等都得到了巨大的提高,虽然有时候很浮躁,但是能够及时的让自己清醒。
    缺点:软件测试基础理论知识太欠缺,脚本语言基础知识不牢,英语口语需要提高,只会2种脚本语言,太单一。测试领域中很多专业测试都只听过,没做过,比如性能测试,白盒测试,安全性测试等等。
    希望接下来的时间能够踏踏实实的工作,不要受到外界影响,虽然普遍都认为测试不如开发,但是我希望有朝一日我能告诉那些做开发的同学,你会的我都会,你不会的我也会。

来源:http://www.testwo.com/space-1213-do-blog-id-463.html
由于最近弄了个计划,不得不使用RAR,所以要在centos上安装RAR,记录如下:

wget http://www.rarsoft.com/rar/rarlinux-3.9.3.tar.gz

tar -xvf rarlinux-3.9.3.tar.gz

cd rar

make



看见下面这些信息就是安装成功了
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

但是我在运行命令rar时,出现下面这个问题,

rar: /lib/i686/nosegneg/libc.so.6: version `GLIBC_2.7' not found (required by rar)

Google下,解决办法是

cp rar_static /usr/local/bin/rar

这样就OK了.

BTW
注册RAR,可以将注册文件 key 复制到你的 /etc 目录即可就OK了

转帖自:http://imcat.in/linux-system-install-rar-centos/
打开my.ini文件

在[mysqld]的下面加上
log = c:/mysql_query.log.txt
重启mysql

以后你用可以用editplus查看你运行的sql了,不用在程序里一句句的用log打出来了.

附:Mysql Doc:
http://dev.mysql.com/doc/mysql/en/Log_Files.html
Log File  Types of Information Logged to File
The error log  Logs problems encountered starting, running, or stopping mysqld.
The isam log  Logs all changes to the ISAM tables. Used only for debugging the isam code.
The query log  Logs established client connections and executed statements.
The update log  Logs statements that change data. This log is deprecated.
The binary log  Logs all statements that change data. Also used for replication.
The slow log  Logs all queries that took more than long_query_time seconds to execute or didn't use indexes.

来源:gaston的博客http://blog.csdn.net/rf_wu/archive/2004/11/13/179756.aspx
分页: 154/271 第一页 上页 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 下页 最后页 [ 显示模式: 摘要 | 列表 ]