PHP 文件上传

创建一个文件上传表单

允许用户从表单上传文件是非常有用的。

请看下面这个供上传文件的 HTML 表单:

<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

请留意如下有关此表单的信息:

<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。

<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。

注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。

Read More →

Activex 部件不能创建对象故障解决

今天下了一个phpmaker玩玩,发现不能生成PHP代码,出现了Activex 部件不能创建对象的对话框,保存时也出现了类似的情况~~~

regsvr32 "C:\windows\system32\scrrun.dll",搞定。。。

Read More →

二进制算术操作笔记-php

最近在想一个加密码算法,参考了DISCUZ的加密算法,位操作显然是主要的运算。

自己写的算法还有一些BUG,先不发了,总结一下PHP的一个心得,我所遇到的问题是移位操作,如果是´j´ >> 2,这个在PHP中结果是0,这个结果有点出乎意料,不过如果:´j´ & ´m´,结果是h,不知道问题在哪里。。。

GOOGLE了一下,找下如下的文字:

二进制算术操作的隐式类型转换规则:整型与浮点型时,整型转换为浮点型;整型与字符串时,字符串转换为数字,如果转换后的值是浮点型,则将整型转换为浮点型;浮点型和字符串,字符串转换为浮点型。
字符串连接操作符“.”在连接字符串之前将两个操作数都转换为字符串。
字符串在转换为数字的时候,若在字符串开头没有发现数字,字符串的数值就是0。如果字符串包括一个句点“.”或“e,E”,对该字符串求值则生成一个浮点数。

估计问题就在这了,整型与字符串时,字符串转换为数字,这的样的话,´j´转化成数字是不存在的,估计就成0了,不过问题还有:若在字符串开头没有发现数字,字符串的数值就是0,什么叫开头没有发现数字?

Read More →

又是一次不完美的终结

终于考完了《自然辩证法》,压抑多时的我,终于可以放下心来,好好欣赏一下身边的美景,这门传说中的小组TOPIC,让我在兄弟面前抬不起头来,太垃圾了,心里好是压抑。。

过去了,一切都过去了,希望我不要再想起这门课,时间去淡忘一切~~~

写到这吧,看看最优化了,明天晚上就考了哈~~~

Read More →

ASP.NET图片防盗链的方法

考试了,应该复习了,书看不进去哇~~~

空闲的时候想想自己的感兴趣的事情,想啊想就看到将要开始的一个项目,想到关于图片防盗的问题,这个东东,我觉得不是很难,大多数的网站都已经实现了,估计是在httpHandlers中实现的。

GOOGLE了一下,果然,代码很简单,原理我就不讲了,网上很多

在web.config的<system.web>配置节中加下如下代码

<httpHandlers>
      <add verb="*" path="*.jpg" type="ASPX2.jpg2, ASPX2"/>
</httpHandlers>

Read More →

SNS很火啊!

今天下了一个DISCUZ的UCHOME程序玩了一下,果然很好很强大。

其实想象校内的一个社区网络,其实更应该说是像FACEBOOK,要不咱也搞个试试?

现在不是流行“挂牌”嘛,搞个玩玩~~

Read More →

该总结总结了

时间就这样一天一天地过去,来华理半年了,没啥成就,和以前本科没什么两样,整天还是上课,吃饭,睡觉,上网,偶尔虽然做做XX管理系统,但是那个东东,我现在已经提不起太大的兴趣,不能说XX管理系统没有意思,只是觉得自己的水平一直没有得到提高,还是停留在原来的地方,没有架构的概念。。。

不能做一个小小的程序员,我们应该朝着更高的目标去努力,等考完试,得总结总结,读个研究生不能就这样过日子~~

Read More →

OfficeTab v1.0 多国语言版 - 让Word,Excel,Poweriont多标签

OfficeTab是一款应用于Microsoft Office的插件,其内含3个组件:WordTab、ExcelTab和PowerPointTab,分别应用于Word、Excel和 PowerPoint.其主要作用就是为上述程序添加一个类似于IE多标签的工具栏.方便用户在不同的文档(工作簿或者演示文稿)之间切换.

ExcelTab(v3.023)

1、支持ExcelXP、Excel2003和Excel2007版的Excel。
2、为Excel2003和Excel2007提供了三种种界面风格,ExcelXP只提供了简洁风格。
3、可以通过左键双击标签位置来关闭工作簿和双击空白区域来新建工作簿。
4、为不同的文件类型提供了不同的标签图标。
5、通过标签和空白区域的右键菜单用户可以进行不同的实用操作。
6、在前一版的基础上增加了在标签末尾使用”*“号来区别未保存和已保存工作簿的功能
7、可以选择标签栏的显示位置(工作区上方和下方)。
8、自适应Excel2007的界面外观变化,对Excel2007提供更好的支持。
9、提供了是否显示标签栏的开关。

主要在3.022的基础上添加了更多的语言支持,修改标签字体为系统当前字体。

Read More →

久违的六级~~

下午就是CET-6的考试,宿舍三个人准备上战场,呵呵,好好加油吧,祝他们好运~~

也祝所有参加六级考试的玩家,都顺利通过~~

Read More →

JS操作select相关方法:新增、修改、删除、选中、清空、判断存在

  1. 判断select选项中 是否存在Value="paraValue"的Item
  2. 向select选项中 加入一个Item
  3. 从select选项中 删除一个Item
  4. 修改select选项中 value="paraValue"的text为"paraText"
  5. 设置select中text="paraText"的第一个Item为选中
  6. 设置select中value="paraValue"的Item为选中
  7. 得到select的当前选中项的value
  8. 得到select的当前选中项的text
  9. 得到select的当前选中项的Index
  10. 清空select的项

//1.判断select选项中 是否存在Value="paraValue"的Item
function jsSelectIsExitItem(objSelect,objItemValue)
{
    var isExit = false;
    for(var i=0;i<objSelect.options.length;i++)
    {
        if(objSelect.options[i].value == objItemValue)
        {
            isExit = true;
            break;
        }
    }      
    return isExit;
}

//2.向select选项中 加入一个Item
function jsAddItemToSelect(objSelect,objItemText,objItemValue)
{
    //判断是否存在
    if(jsSelectIsExitItem(objSelect,objItemValue))
    {
        alert("该Item的Value值已经存在");
    }
    else
    {
        var varItem = new Option(objItemText,objItemValue);
//      objSelect.options[objSelect.options.length] = varItem;
        objSelect.options.add(varItem);
        alert("成功加入");
    }    
}

//3.从select选项中 删除一个Item
function jsRemoveItemFromSelect(objSelect,objItemValue)
{
    //判断是否存在
    if(jsSelectIsExitItem(objSelect,objItemValue))
    {
        for(var i=0;i<objSelect.options.length;i++)
        {
            if(objSelect.options[i].value == objItemValue)
            {
                objSelect.options.remove(i);
                break;
            }
        }        
        alert("成功删除");            
    }
    else
    {
        alert("该select中 不存在该项");
    }    
}

//4.修改select选项中 value="paraValue"的text为"paraText"
function jsUpdateItemToSelect(objSelect,objItemText,objItemValue)
{
    //判断是否存在
    if(jsSelectIsExitItem(objSelect,objItemValue))
    {
        for(var i=0;i<objSelect.options.length;i++)
        {
            if(objSelect.options[i].value == objItemValue)
            {
                objSelect.options[i].text = objItemText;
                break;
            }
        }        
        alert("成功修改");            
    }
    else
    {
        alert("该select中 不存在该项");
    }    
}

//5.设置select中text="paraText"的第一个Item为选中
function jsSelectItemByValue(objSelect,objItemText)
{    
    //判断是否存在
    var isExit = false;
    for(var i=0;i<objSelect.options.length;i++)
    {
        if(objSelect.options[i].text == objItemText)
        {
            objSelect.options[i].selected = true;
            isExit = true;
            break;
        }
    }      
    //Show出结果
    if(isExit)
    { 
        alert("成功选中");            
    }
    else
    {
        alert("该select中 不存在该项");
    }    
}

//6.设置select中value="paraValue"的Item为选中
document.all.objSelect.value = objItemValue;

//7.得到select的当前选中项的value
var currSelectValue = document.all.objSelect.value;

//8.得到select的当前选中项的text
var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text;

//9.得到select的当前选中项的Index
var currSelectIndex = document.all.objSelect.selectedIndex;

//10.清空select的项
document.all.objSelect.options.length = 0;

Read More →
在线学习答案查询入口
微信扫码联系
微信扫码联系