文件上传系统操作手册(共7篇)
在排除用户组和权限等问题后,最可能引起ftp下文件无法上传并经常被忽略的因素就是硬盘空间已满,而导致硬盘空间满的问题多数是日志文件所占用的,例如mysql的日志会在不知不觉中变得十分庞大,直至占满剩余的硬盘空间,
解决办法:
1、定期手动清理或使用脚本清理mysql日志或其他相关日志文件。
2、关闭mysql日志(不推荐)
上面是空间有问题,如果上面办法解决不了可能是权限问题
在终端中执行 vi /etc/selinux/config,将其中的selinux=enforcing的enforcing改为disable,
然后保存退出vi,执行setenforce 0 或者重启。就可以上传了。
如果,你不是上述的解决方法的话,有可能是你没有到ftp服务器下的incoming文件夹中,或者你没有把incoming文件夹的权限改为777。
或这样解决
直接ssh连接以后执行:
chown www:www -R 你的FTP目录
chmod 777 -R 你的FTP目录
这样赋予权限以后可以解决ftp不能上传、新建的问题,如果不能覆盖文件的话,打开pure-ftpd.conf配置文件在末尾追加:
AllowOverwrite on
AllowStoreRestart on
最后wq保存,重启pureftpd服务即可。
wdcp中pureftpd的配置文件:/www/wdlinux/etc/pure-ftpd.conf
关键词:ASP.net,文件上传,数据库存储与文件系统存储比较
目前, 公司中文件的上传到服务器和文件浏览是日常的工作, 因而对于公司来说, 文件上传系统是信息传达的重要部分。在实现此功能的基础上, 上传的文件是保存在数据库中还是保存在文件系统中, 是编程人员总会遇到的问题。下面就关于这两方面进行比较。
对于上传的文件保存到数据库中就是在服务器中先创建数据库文件, 然后将上传的文件以二进制数据形式保存到数据库中对应的二进制的字段中;而将上传的文件保存到文件系统是以文件的形式将上传文件保存到服务器对应的文件夹中。下面就两种方法比较异同点。
1 两种方法中的相同点
在两种方法中, 都要使用fileupload控件, 该控件是表示一个HTML文件输入, 负责接收上传的文件。其控件代码如下:
两种方法都要使用数据库, 建立数据库文件。用数据库系统保存上传的文件, 其中的数据库是用来保存上传的文件名及文件内容;用文件系统保存上传的文件, 其中的数据库是用来保存文件名和文件保存的路径。
2 两种方法的不同点
上传的方法不同。将文件上传到服务器的文件系统中, 是直接使用fileupload控件的Save As (filepath as string, filename asstring) 方法, 把已上传的文件保存在filename所指定的系统文件夹中, 其代码如下:
将文件保存到数据库中, 使用的是fileupload控件的File Bytes的属性, 其类型是byte () , 它是字节数组, 包含fileupload控件中上传文件的二进制内容, 具体的操作是将文件的二进制数据保存到数据库记录对应的字段中。其代码如下 (编程代码1) :
数据库中保存的内容不同。文件上传到服务器的文件系统中, 后台数据库保存的内容为文件名称和文件保存的路径。
编写程序如下:
文件上传到数据库系统中, 后台数据库保存的内容为文件名称和文件内容的二进制数据。其编程参照编程代码1.
建立数据库的结构不同。文件上传到服务器的文件系统中, 后台数据库表files定义如下:
文件上传到数据库中, 后台数据库表filecontent的定义如下:
用户浏览 (获取) 文件的途径不同。文件存储在文件系统中, 由于文件的路径是存放在数据库中, 因而, 将数据库中的路径字段值取出, 做为浏览文件的超级链接地址, IIS即可将指定路径的文件显示在用户端的浏览器中, 其代码如下:
文件存储在数据库中, 用户要浏览文件, 必须将保存在数据库中的二进制文件读取出, 显示在用户端的浏览器中, 这就需要编写专门的文件下载程序, 因为IIS不能自动从数据库中读取文件。其代码如下:
runat="server"/>, 其中链接地址采用调用参数传递的方法, 将数据库中对应记录的id号作为传递参数, 并编写HTTP处理器程序File Handler.ashx, 将超级链接中的参数ID指向的记录的文件内容字段值, 以二进制数据的格式回写到浏览器中。其中调用HTTP处理器程序File Handler.ashx, 其代码如下:
3 两种方法的性能方面的比较
3.1 事物支持。
ACID原则, 是数据库系统提出的原则, 即为事务的原子性、一致性、独立性及持久性。
事务的原子性是指一个事务要么全部执行, 要么不执行.也就是说一个事务不可能只执行了一半就停止了;事务的一致性是指事务的运行并不改变数据库中数据的一致性;事务的独立性是指两个以上的事务不会出现交错执行的状态;事务的持久性是指事务运行成功以后, 就系统的更新是永久的, 不会无缘无故的回滚。
将文件上传到文件系统, 由于这个事物是分为两个步骤执行, 第一步是将文件上传到服务器的文件系统中, 第二步是将文件名称和上传的路经写到数据库文件中。对于这两个步骤, 要求必须同时完成, 要么就都不完成。但是在实际中, 文件保存在文件系统中, 可能因为外界的因素, 两个步骤只完成了其中的一个, 因而导致文件保存的位置与数据库中的超链接字段内容不符的情况, 对于事物支持来说, 这种上传文件的方式不具备。
将文件上传到数据库中, 这个事物是唯一的、完整的一个操作, 上传的方法就是将文件直接写到数据库中, 不出现分离、交错、更新等问题, 因而数据库系统支持ACID原则。
即要维护原子性、一致性、独立性和持久性, 那么需要将文件保存在服务器的数据库中更优。
3.2 参照完整性以避免破坏文件链接
参照完整性是两部分数据之间的关系状态。这里指的是文件和文件链接地址之间的参照完整性。实施参照完整性是使用数据库存储文件而不用文件系统存储的最为充足的理由。数据库存储文件, 链接地址是将数据库中文件名对应记录的id号作为传递参数, 并编写HTTP处理器程序File Handler.ashx, 将超级链接中的参数ID指向的记录的二进制文件内容字段值以二进制数据的格式回写到浏览器中。其文件名和文件内容是保存在数据库中的同一个记录中, 对于数据库进行查询将同时获取到两部分内容;而将文件存储到文件系统中, 文件是保存在文件系统中, 而地址保存在数据库中, 如果其中一项单独发生变化, 则直接会破坏文件的链接。
3.3 安全性比较
文件保存在文件系统中, 从安全的方面考虑, 要对文件系统的安全性进行设置, 可以使用文件系统文件权限保护文件;文件保存在数据库中, 安全性方面是要从数据库方面进行设置, 可以使用数据库用户、角色和权限限制对数据库的访问。如果配置得当, 两者旗鼓相当。
但是, 人们对于文件系统已经较熟悉, 文件的检索、移动、复制、删除已经成为习惯, 如果获取了对文件系统的访问权, 很容易获取到文件;相对而言, 如果对数据库SQL不熟悉, 对于移动文件和检索几乎是不可能的。同时, 数据库中保存文件的内容是以二进制形式保存的, 对于文件的读取、修改等操作, 需要读取、编辑、保存文件内容到硬盘中, 这必须用编程方法来完成。其操作相对复杂了很多。因而, 数据库存储文件在安全性方面更好一些。
3.4 性能上比较
文件系统是用来优化文件和检索的。因而在文件的存储和检索方面, 文件系统做的比数据库更好些。
数据库是为相对小的记录, 而不是大文件来优化的。SQL存储是把记录存储在数据库页面的结构中, 它的大小约为8KB, 然而大部分文件都大于8KB, SQL把文件拆分成8KB文件块, 这样文件就存储于多个页面中, 这样, 文件的检索会增加性能的开销;同时, SQL对于文件的输出遵循TDS协议, 它的文件传递能力不如文件系统优良;对于大文件 (200MB左右) , 如果同时访问的用户太多, 意味中同时打开数据库的连接增多, 其性能会降低。
但是, 在日常的工作中, 上传的工作文件, 其一般文件就为几十KB, 文件较小, 且不太频繁的文件访问, 其性能差异就会不大。
3.5 数据备份和复制
数据库的备份和复制是可以自动进行的。在这方面数据库系统存储文件会更好些。
3.6 数据库性能的比较
文件系统保存的仅仅是文件的路径, 其占用资源较小;而数据库系统保存的是文件本身, 其每条记录的大小将会随着上传文件的大小而定, 占用资源较大。对于数据库的查询等各类操作, 要求硬件资源和系统开销较高。
3.7 编程的复杂度
因为IIS不能直接读取数据库中的文件, 因而在数据库中存储文件中, 对于文件的读取, 要单独编写代码, 会比直接存储到文件系统要编些更多的代码。
以上就是对两个系统存储文件的比较。个人认为, 对于日常工作中, 上传的文件是基于文字性的文件, 同时浏览连接的不是很频繁, 数据库存储文件还是优于文件系统。具体采取哪一种方法, 可根据实际情况具体分析优劣而定。
参考文献
首先到Droplr云端服务的官方网站(droplr.com),下载适合自己系统的客户端版本。其客户端需要Visual C++ 2012运行库的支持,没有的话会自动下载这个运行库,但是问题就出在自动下载这个环节。由于Droplr是国外的云端服务,所以默认下载的运行库和中文系统不兼容,这就需要用户在安装客户端之前,手动下载中文版的Visual C++ 2012进行相关操作。
客户端程序安装完成后,就可以在系统托盘里面看到它的图标,在图标上点击鼠标左键,在系统桌面上显示出客户端的悬浮框。接下来将需要分享的文件拖拽到悬浮框上释放,就可以开始进行文件的上传操作了(图1)。
通过悬浮框图标可以观察到文件上传的进度,当悬浮框的图标填充完毕就说明文件上传好了。接下来在系统桌面的右下角将出现一个短链接的提示,这就说明文件分享的操作已经完成,同时分享链接已经被加载到系统的剪切板里面,用户就可以直接通过微博、QQ等方式进行分享操作了。一旦用户打开这个分享链接,即可看到分享出来的文件。如果是多媒体文件或者文档文件,还可以进行在线预览,在认为这个文件的确需要后再进行下载操作(图2)。
其他信息上传分享
Droplr除了可以对常见的文件进行上传分享外,还可以对剪切板、屏幕截图等信息进行上传。比如我们要分享屏幕截图的话,首先在系统托盘的软件图标上点击鼠标右键,选择菜单里面的“Grab screenshot”命令(图3)。这时屏幕桌面就会呈现出一种候选状态,通过鼠标左键手动选择需要截图区域,这样就完成了一个简单的截图操作。随后Droplr会自动跳出工具窗口,利用其中的功能可以对截图进行最基本的编辑,编辑完成后自然就是上传和分享了。
编辑LocalSettings.php,修改下面这一行为true即可。
$wgEnableUploads = true;
之后页面左侧的“工具箱”中会多出一项“上传文件”,单击它即可上传文件。
但如果你要上传png格式的图片,就会发现,系统禁止了png类型的文件。调查includes/DefaultSettings.php的 $wgFileExtensions 变量,可以看到png格式是允许的。但为什么无法上传呢?JPG和GIF都可以正常上传啊。
原因是MediaWiki会判断上传文件的MIME Type,并禁止某些类型的MIME Type上传。而文件的MIME Type获取是通过php的mime_magic模块进行的,默认情况下这个模块无法正确识别png格式,所以png图像就无法得到正确的MIME Type,于是上传失败,
在phpinfo中可以看到这样几行文字:
mime_magic supportenabled
DirectiveLocal ValueMaster Valuemime_magic.debugOffOffmime_magic.magicfile/etc/httpd/conf/magic/etc/httpd/conf/magic
得知mime_magic的配置文件是 /etc/httpd/conf/magic。打开此文件就可以发现其中并没有PNG格式。
在GIF和JPG文件的附近添加这样一行:
# PNG1 string PNG image/png
然后重新启动httpd。这样PNG文件就可以正常上传了。
1.操作系统对文件实行统一管理,最基本的是为用户提供()功能。A.按名存取 B.文件共享 C.文件保护 D.提高文件的存取速度
2.按文件用途分类,编译程序是()。A.系统文件 B.库文件 C.用户文件 D.档案文件
3.()是指将信息加工形成具有保留价值的文件。A.库文件 B.档案文件 C.系统文件 D.临时文件 4.把一个文件保存在多个卷上称为()。A.单文件卷 B.多文件卷 C.多卷文件 D.多卷多文件
5.采取哪种文件存取方式,主要取决于()。A.用户的使用要求 B.存储介质的特性 C.用户的使用要求和存储介质的特性 D.文件的逻辑结构 6.文件系统的按名存取主要是通过()实现的。A.存储空间管理 B.目录管理 C.文件安全性管理 D.文件读写管理
7.文件管理实际上是对()的管理。A.主存空间 B.辅助存储空间 C.逻辑地址空间 D.物理地址空间
8.如果文件系统中有两个文件重名,不应采用()结构。A.一级目录 B.二级目录 C.树形目录 D.一级目录和二级目录
9.树形目录中的主文件目录称为()。A.父目录 B.子目录 C.根目录 D.用户文件目录
10.绝对路径是从()开始跟随的一条指向制定文件的路径。A.用户文件目录 B.根目录 C.当前目录 D.父目录 11.逻辑文件可分为流式文件和()两类。A.索引文件 B.链接文件 C.记录式文件 D.只读文件 12.由一串信息组成,文件内信息不再划分可独立的单位,这是指()。A.流式文件 B.记录式文件 C.连续文件 D.串联文件
13.记录式文件内可以独立存取的最小单位是由()组成的。A.字 B.字节 C.数据项 D.物理块
14.在随机存储方式中,用户以()为单位对文件进行存取和检索。A.字符串 B.数据项 C.字节 D.逻辑记录 15.数据库文件的逻辑结构形式是()。A.链接文件 B.流式文件 C.记录式文件 D.只读文件
16.文件的逻辑记录的大小是()。A.恒定的 B.相同的 C.不相同的 D.可相同也可不同
17.能用来唯一标识某个逻辑记录的数据项为记录的()。A.主键 B.次键 C.索引 D.指针 18.在文件系统中,()要求逻辑记录顺序与磁盘块顺序一致。A.顺序文件 B.链接文件 C.索引文件 D.串联文件
19.下列文件中,()的物理结构不便于文件的扩充。A.顺序文件 B.链接文件 C.索引文件 D.多级索引文件 20.()的物理结构对文件随机存取时必须按指针进行,效率较低。A.连续文件 B.链接文件 C.索引文件 D.多级索引文件 2l.链接文件解决了顺序结构中存在的问题,它()。A.提高了存储空间的利用率 B.适合于随机存取方式 C不适用于顺序存取 D.指针存入主存,速度快 22.索引结构为每个文件建立一张索引表,用来存放()。A,逻辑记录的地址 B.部分数据信息 C.主键内容 D.逻辑记录存放位置的指针 23,文件系统可以为某个文件建立一张(),其中存放每个逻辑记录存放位置的指针。A.位示图 B.索引表 C.打开文件表 D.链接指针表 24.文件系统中,要求物理块必须连续的物理文件是()。A.顺序文件 B.链接文件 C.串联文件 D.索引文件
25.进行成组操作时必须使用主存缓冲区,缓冲区的长度等于()。A.逻辑记录长度 B.最小逻辑记录长度乘以成组块因子 c.最大逻辑记录长度乘以成组块因子 D.平均逻辑记录长度乘以成组块因子
26.记录的成组和分解提高了存储介质的利用率和减少启动设备的次数,但()为代价。A.以设立主存缓冲区 B.以操作系统增加成组分解功能 c.以设立主存缓冲区和操作系统增加成组分解功能 D.没有额外系统消耗 27.在文件系统中设置一张(),它利用二进制的一位表示磁盘中一个块的使用情况。A.空闲块表 B.位示图 c.链接指针表 D.索引表 28.“打开文件”操作要在系统设置的()中登记该文件的有关信息。A.索引表 B.链接指针表 c.已开文件表 D.空闲块表
29.对顺序文件做读文件操作时,总是从()按顺序读出信息。A文件头部向后 B.文件尾部向前 c.文件中部开始 D.当前位置开始
30.有的系统为了方便用户,提供一种隐式使用文件的方法,但用户对()还是必须显式地提出。A.建立文件 B.打开文件 c.关闭文件 D.读文件
31.允许多个用户同时使用同—个共享文件时,下列()做法是不对的。A.允许多个用户同时打开共享文件执行读操作 B.允许读者和写者同时使用共享文件 c.不允许读者和写者同时使用共享文件 D.不允许多个写者同时对共享文件执行写操作
32.用()可以防止共享文件可能造成的破坏,但实现起来系统开销太大。A.用户对树形目录结构中目录和文件的许可权规定 B.存取控制表 c.定义不同用户对文件的使用权 D.隐蔽文件目录
33.uNIX系统中,对新建的文件默认的许可权力为:文件主一可读可写,伙伴一可读,一般用户一可读,则表示这种使用权限的3位8进制数为()。A.755 B,644 C.522 D.622 34.单靠()并不能达到文件保密的目的。A.隐蔽文件目录 B.设置口令 c使用密码 D.规定文件使用权限
35.为了文件的保密,可以用()的方法使某些文件的目录不在显示器上显示出来。A.存取控制表 B.隐蔽文件目录 C.设置口令 D.使用密码(二)填空题
1.文件系统是操作系统中的重要组成部分,它对___进行管理。2.文件管理的主要工作是管理用户信息的存储、___、更新、___和保护。3.文件管理为用户提供___存取文件的功能。4.文件是逻辑上具有完整意义的___. 5.文件存取有多种方式,采用哪一种方式与用户的使用要求和___ 的特征有关. 6.存储介质上连续信息所组成的—个区域称为___,它是存储设备与主存之间信息交换的物理单位。7.从对文件信息的存取次序考虑,存取方法可分为___和___两类。8.磁带机是适合于___的存储设备,而磁盘上的文件既能___又能___.9.文件系统对文件统一管理的目的是方便用户且保证___。10.用户按信息的使用和处理方式组成文件,称为___。11.当用户要求读写文件时,文件系统实现___和___之间的转换。12.文件目录是用于___文件的,它是文件系统实现按名存取的重要手段。13一级目录结构在文件目录中登记的各个文件都有___文件名。14.在二级目录结构中,第一级为___,第二级为___。15.在树形目录结构中,___是从根目录出发到某文件的通路上所有各级子目录名和该文件名的顺序组合。16.___指出了从当前日录出发到指定文件的路径。17.逻辑文件可分为的___和___两类。18___是指用户对文件内的信息不再划分可独立的单位,整个文件由依次的一串信息组成。19.记录式文件中,___是文件内可以独立存取的最小信息单位. 20.磁带上的每个文件都有文件头标、___都___三部分组成。21.在磁盘上常用的组织方式有顺序结构、___和___。22___ 是具有逻辑记录顺序与磁盘块顺序相一致的文件结构的文件。23.顺序文件把逻辑上连续的信息存放在磁盘相邻的块上,所以它不适于文件的___.24.用指针把不连续的磁盘块按所存放的逻辑记录的顺序链接起来,形成文件的___结构。25.链接文件采用___方式是高效的,而采用___方式是低效的。26.索引结构为每个文件建立一张___,把指示每个逻辑记录存放位置的指针集中在这张表中。27.对索引文件,既可采用___方式,又可采用___方式。28.在索引文件中随机存取某一记录时,根据___在主存中的起始地址找到该记录的登记项,再按其中的___找到该逻辑记录。29.把若干逻辑记录合成一组存入一块的工作称___,每块中的逻辑记录个数称___。30.进行成组操作时必须使用主存缓冲区,缓冲区的长度等于___乘以成组的___. 31.记录的成组不仅提高了存储空间的___,而且还提高了系统的___。32.从一组逻辑记录中把一个逻辑记录分离出来的操作称为___。33.当用户要求存储文件时,文件管理要为他___;当删除文件时又要___文件占用的存储空间。34用___指示磁盘空间使用情况时,其中的每一位与一个___对应。35.空闲块表中每个登记项记录一组连续空闲块的___和___。36.空闲块的连接方式有___ 和___。37.采用空闲块成组连接方式时,把空闲块分成若干组,把指向一组空闲块的___集中在—起。38.用户可以用访管指令调用建立文件、___、读文件、___、关闭文件和___等文件操作功能模块。39.文件被打开后要在系统设置的___中登记该文件的有关信息。40.只有文件的___或___才有权关闭文件。41.删除文件操作要把用户指定的文件在文件目录中___,___文件所占用的存储空间。42用户在读、写文件操作以后要调用___ 操作模块。43.用户在请求删除文件操作时必须先调用___操作模块。44.允许多个用户同时使用同一个共享文件时,系统必须实现对共享文件的___ 45.多用户同时使用某个共享文件时,___多个写者同时对该文件执行写操作。46.为防止系统故障造成文件被破坏,常采用___和___的方法来保护文件。47.为了防止用户共享文件可能造成的破坏,一般要规定各用户对文件的___. 48.在uNIx系统中,若文件A的存取权限被规定为751则文件主的伙伴对此文件的存取权限为___. 49.文件的___是防止文件被破坏,而文件的___是防止不经文件拥有者授权而窃取文件。50.常用的文件保密措施有___、___都___。(三)简答题
1.什么是文件? 2.简述按名存取的含义。3.按用途分类,主要有哪几种文件? 4.什么叫卷?什么叫块? 5.文件的存取方式有哪几种?怎样确定文件的存取方式? 6简述文件系统的结构。7.文件目录中一般包含什么内容? 8.在二级目录结构中,如何实现文件共享? 9何谓绝对路径名和相对路径名?相对路径名有何优点? 10.树形目录有何优点? 11.文件的逻辑结构有哪几种形式? 12.记录式文件在磁盘上有哪几种组织形式? 13什么是记录的成组和分解?采用这种技术是否有额外的开销? 14.文件系统提供哪几种操作功能?用户怎样才能调用这些功能? 15.打开文件、建立文件和关闭文件各起什么作用? 16.用户在显式和隐式使用文件时有何不同? 17当多个用户同时使用共享文件时,如何进行同步控制? 18.区分文件保护和保密的异同。(四)计算题 1.现有三名学生s1,s2和s3上机实习,程序和数据都存放在同一磁盘上。若三人编写的程序分别为P1,P2和P3,要求这三个学生用自编的程序调用同一个数据文件A进行运算。请问1)若文件A作为共享文件,系统应采用何种目录结构?画出示意图。(2)若这三位学生不约而同地把自己的程序名都起为P,利用(1)答案中的目录结构能否满足要求?(3)针对(2)的要求,简要说明系统如何为每个学生索取他们的程序和数据? 2.假设磁带的记录密度为1600bPi(字节/英寸),每个逻辑记录长为200字节,块与块之间的间隔为0.5英寸,请回答下列问题:(1)不采用成组操作时,磁带空间的利用率是多少?(2)采用块因子为6作成组操作时,磁带空间的利用率为百分之几?(3)为了使磁带空间的利用率大于80%,采用记录成组时其块因子至少为多少? 3.假设一个磁盘组共有l00个柱面,每键面有8个磁道,每个盘面被分成4个扇区。若逻辑记录的大小与扇区大小一致,柱面、磁道、扇区的编号均从“0”开始,现用字长为16位的200个字(第0字~第199字)组成位示图来指示磁盘空间的使用情况。请问:(1)文件系统发现位示图中第15字第7位为0而准备分配给某一记录时,该记录会存放到磁盘的哪一块上?此块的物理位置(柱面号,磁头号和扇区号)如何?(2)删除文件时要归还存储空间,第56柱面第6磁道第3扇区的块就变成了空闲块,此时,位示图中第几字第几位应由1改为0? 4.现有一文件FILE _x,其逻辑记录的大小为125字节,共有20个逻辑记录,文件系统把这个文件存储到磁盘上时采用链接结构,磁盘的分块大小为5l2个字节,请问:(1)采用什么方法可有效地利用磁盘空间?(2)画出文件FILE _x在磁盘上的链接结构示意图(磁盘块号自定)。(3)若用户要求读包含第1285字节的逻辑记录,文件系统将如何工作?
第五章 文件管理 练习题参考答案(一)单项选择题
1.A 2.A 3.B 4 C 5.C 6.B 7.B 8.A 9.C l0.B 11.C 12.A 13.C 14.D 15.C 16.D 17.A 18.A l 9.A 20.B 21.A 22.D 23.B 24.A 25.C 26.C 27 B 28 C 29 D 30.D 31.B 32.B 33 B 34.D 35 B(二)填空题
1.信息 2.检索,共享 3.按文件名 4.信息集合 5.存储介质 6.块(或物理记录)7.顺序存取,随机存取 8.顺序存取,顺序存取,随机存取 9.文件的安全可靠 10.逻辑结构(或逻辑文件)11.逻辑文件,物理文件 12.搜索 13.不同 14.主文件目录,用户文件目录 15路径名(或绝对路径名)16.相对路径名 l 7.流式文件,记录式文件 18流式文件 l9.逻辑记录 20.文件信息,文件尾标 21.链接结构,索引结构 22.顺序文件(或连续文件)23.随机存取 24.链接 25.顺序存取,随机存取 26.索引表 27.顺序存取,随机存取 28.索引表,指针
29.记录的成组,块因子 30.最大逻辑记录长度,块因子 31.利用率,工作效率 32.记录的分解 33.分配磁盘存储空间,收回 34位示图,磁盘块 35.首块号,块数 36.单块连接,成组连接 37.指针 38.打开文件,写文件,删除文件 39.已开文件表 40.建立者,打开者 41.除名,收回 42.关闭文件 43.关闭文件 44.同步控制 45.不允许 46.建立副本,定时转储 47.使用权限 48.可读和可执行 49.保护,保密 50.隐蔽文件目录,设置口令,使用密码(三)简答题
1.文件是逻辑上具有完整意义的信息集合。
2.用户不必考虑文件存储在哪里,怎样组织输入输出等工作,只要提供文件名,操作系统通过去查找目录,就能对文件进行存取。
3.按用途分类,文件主要能分成系统文件、库文件和用户文件。4.卷是存储介质的物理单位。如一盘磁带、一张软盘片、一个硬盘组都可称为一个卷。块是存储介质上连续信息所组成的一个区域,它是存储设备与主存储器之间进行信息交流的物理单位。5.存取方式可分两类:顺序存取和随机存取。顺序存取是指对文件中的信息按顺序进行读写;随机存取是指按任意次序读写文件中的信息。采取哪一种存取方式与用户的使用要求和存储介质的特性有关。如源程序总是按顺序布取,数据库文件常用随机存取;磁带上的文件适合于顺序存取;磁盘中的文件既可顺序存取,也可以随机存取。
6.文件系统主要由以下五部分组成:(1)目录管理。利用目录结构检索文件,并能保证文件的安全。(2)文件的组织。文件组织分两类:逻祖结构和物理结构,前者是从用户使用的角度织织文件,后者是存储介质上的文件构造方式。当用户请求读写文件时,文件系统必须实现文件逻辑结构与物理结构之间的转换。(3)文件存储空间的管理。主要是对磁盘空闲区的管理,执行分配和回收工作。(4)文件操作,为用户提供文件操作功能。主要有建立文件、打开文件、读文件、写文件、关闭文件和删除文件等。(5)文件共享、保护和保密。对共亭文件进行同步控制,防止文件被破坏,被剽窃。
7.文件目录由若干目录项组成,每个目录项一般应包含以下内容
1)有文件存取控制的信息,如用户名、文件名、文件类型和文件属性。(2)有关文件结构的信息,如文件的逻辑结构、物理结构、记录个数、文件在存储介质的份量等。(3)有关文件管理的信息,如建立日期、文件被修改的日期、文件保留期限和记账信息等。
8.如果多个用户要共享某个文件,只要让各个用户文件目录中的某个目录项指向同一个文件存放地址。对共享文件,各个用户可以定义相同的文件名,或不同的文件名。
9.绝对路径名是指从根目录开始跟随着的一条指向文件的路径;相对路径名是指从当前目录出发到指定文件的路径。文件系统用绝对路径名和相对路径名都能找到指定的某个文件,但使用相对路径可以减少查找文件所花费的时间。
10.树形目录结构的优点有:解决了重名问题,有利于文件的分类;提高检索文件的速度;能进行存取权限的控制。
11.文件的逻辑结构有两种形式,流式文件和记录式文件。流式文件是指用户对文件内的信息不再划分可独立的单位,整个文件由依次的一串信息组成;记录式文件是由若干个逻辑记录组成。用户对文件内的信息按逻辑上独立的含义再划分的信息单位称为逻辑记录。12.记录式文件在磁盘上常用的组织形式有:顺序结构、链接结构和索引结构。13把若干个逻辑记录合并成一组存入一块的工作称记录的成组。从一组逻辑记录中把一个逻辑记录分离出来的操作称为记录的分解。采用这种技术有额外的开销,即要设立主缓冲区,操作系统还要增加成组分解的操作功能。
14.文件系统主要提供以下六种操作功能;建立文件、打开文件、读文件、写文件、关闭文件和删除文件。用户可以用访管指令使用这些功能。15.打开文件和建立文件实际上起着用户申请对文件使用权的作用。经文件系统验证符合使用权时才允许用户使用文件,并适当地为用户做好使用文件前的准备。关闭文件操作的作用是让用户向系统归还文件的使用权。
16.用户在显式使用文件时.必须道循以下规定:读文件时要依次调用打开文件、读文件和关闭文件操作;写文件时要依次调用建立文件、写文件和关闭文件操作。而在隐式调用时,允许用户可直接调用读文件或写文件.不必调用打开文件、建立文件和关闭文件操作,这些操作由文件系统自动完成。
17.当多个用户同时使用某个共享文件时,常用三种规则实现共享文件的同步控制:(1)允许多个用户同时打开共享文件,执行读操作;(2)不允许读者和写者同时使用共享文件;(3)不允许多个写者同时对共享文件执行写操作。
18.文件保护是防止文件被破坏,文件的保密是防止不经拥有者授权而窃取文件。文件保护根据引起文件被破坏的原因----系统故障或非法使用共享文件----而采用不同的措施。前者采用建立副本和定时转储等方法;后者则采用树形目录结构、存取控制表和文件使用权限。文件保密措施主要有隐蔽文件目录、设置口令和使用密码.(四)计算题
l.(1)系统采用二级目录结构就能满足需要,其示意图为下图。文件目录
(2)利用上图的二级目录结构能满足此要求,只要在用户目录中把Pl、P2、P3都改为P,但这些P都是指向各自不同的程序。
(3)存取程序和数据时,文件系统会先搜索主文件目录,找到该学生的用户目录,然后在用户目录中查找指定的文件。比如对学生S1.由路径/S1/P找到的文件是他的程序文件。因为它与/S2/P不会指向同一个文件,不会冲突。而/S1/A和/s2/A是同一个文件,所以学生S1能取到所需的数据。当然这里A文件可以由三个学生同时打开,一起执行读操作。2.(1)间隔=l600×0.5=800(字节); 200/(200+800)=20%;所以不采用成组操作时磁带空间的利用率为20%、(2)(200×6)/(200×6+800)=60%;所以采用成组操作时磁带空间的利用率为60%。
(3)设块因子为x,则200x/(200X+800)>0.8; 250X>200X+800; 50X>800;X>16;所以块因子至少为17。
3.(1)块号=15×字长+7=15×16+7=247;柱面号=[块号/每柱面扇区数]=[247/(8×4)]=7; 磁头号=[(块号mod每柱面扇区数)/每盘面扇区数]=[(247 mod 32)/4]=5;扇区号=(块号mod每柱面扇区数)mod每盘面扇区数=(247 mod 32)mod 4=3;所以该记录会存放在第247块上,即在第7个柱面,第5磁头,第3个扇区上。
(2)块号=柱面号×每柱面扇区数+磁头号×每盘面扇区数+扇区号=56×(8×4)+6×4+3=1819; 字号=[块号/字长]=[1819/16]=113;位号=块号mod字长=1819 mod 16=11;所以位示图中第113字第11位应由1变成0。
4.(1)采用记录成组的方法能有效地利用磁盘空间,这里拟选用块因子为4。
(2)采用块因子为4,进行记录成组时,将占5个磁盘块.不妨设这5个磁盘块依次为6、2、9、l 5、18。文件FILE—x在磁盘上的链接结构示意图见下图。文件目录
文件名
始址
末址 FILE-X
6
18
块 号 6 2
学习单元:信息科技基础 授课年级:预初六年级 授课课时:1课时
一、教学内容分析
本节内容选自中国地图出版社出版的《初中信息科技》第一单元信息科技基础的第三节“学习更多的操作”的内容。本节课是学生刚进入初中的基础课,课堂以完成三个任务的形式展开,由易到难,最后一个任务是综合任务。让学生在完成“整理桌面图标”、“文件搜索”、“管理自己的文件”任务的过程中,掌握文件的基本操作,养成对计算机中文件经常整理的习惯,提升学生的信息素养,达到课堂的教学目的。
二、学生情况分析
对于预初六年级的学生而言,小学信息科技的学习让他们具备了一定的信息科技基础,日常生活计算机的使用也让他们对于文件的操作并不陌生,但是计算机中文件的搜索以及文件的管理许多学生并没有关注过。通过本节课内容的学习,能加深学生对文件搜索及管理的认识。
三、教学目标
知识与技能:学会整理桌面图标、删除文件,能进行文件和文件夹的搜索,学会对文件夹进行归类
过程与方法:通过文件和文件夹搜索、以及自我建立文件夹的练习,初步学会有效管理计算机中文件的方法。
情感态度价值观:通过搜索文件、整理文件等练习,领悟清晰的文件结构对人们工作与学习的帮助意义。
四、教学重难点
掌握文件搜索的基本方法;学会分类整理自己计算机中的文件
五、教学方法:
任务驱动法、自主探究法
六、教学过程
(一)教师引入
师:同学们,在上课前老师先展示一位学生计算机桌面的图片,大家思考一下,他的计算机桌面上有哪些图标呢?
生:我的文档、我的电脑、网上邻居、回收站、我的作品
师:计算机桌面上的图标代表一个个软件、工具或文件,双击这些图标可以方便的打开相应的软件、工具或文件。所以人们常常把一些软件、工具的快捷方式放在桌面上。计算机的桌面也像同学们的书桌桌面一样,需要经常整理,只有这样,我们才能方便的找到所需要的文件。
比一比:展示两张图片,分别为桌面整理前和桌面整理后的对比图。
整理前
整理后
学生分析两张对比图片。
(二)帮助小明完成任务 1.任务一——整理桌面图标
师:展示学生小明的电脑桌面,你能帮助他把桌面图标按照“修改时间”顺序排列吗? 方法:
① 在Windows桌面的空白部分右击,在弹出的快捷菜单中选择“排列图标”子菜单。
② 分别单击“名称”、“大小”、“类型”、或“修改时间”,就能使桌面图标按照相应的要求进行排列。
提示:如果选择”自动排列“,则操作系统会始终自动整理桌面图标。设计意图:让学生学会按照不同的需求整理桌面图标。
2.任务二——搜索文件
(1)师:整理完桌面图标,小明准备完成今天的练习作业,但他却不记得文件“作业.doc”放在电脑里的具体位置了,你能帮助他吗?
方法:
“开始”——“搜索”——“文件或文件夹...”——“搜索结果” “全部或部分文件名”:输入要查找的文件或文件夹的名称。“文件中的一个字或词组”:输入文件里面包含的字词。“在这里寻找”:选择查找区域。拓展知识:
文件名的组成
(2)师:不一会儿,小明遇到了一道难题,突然想起来老师给每位同学发了一份学习资料的word文档,只记得存在D盘里,但不记得名字了,你能帮他找到吗? 方法:
“全部或部分文件名”:*.doc “在这里寻找”:选择D盘 通配符介绍1:
“ * ”代表任意长度的字符串,如 “ *.doc ” 学生自己操作练习。
(3)师:作业完成后,小明想翻看一下电脑中存放的一张暑假和父母出门旅游的合影照片,但他只知道是一个jpg格式的文件,存放在硬盘里,文件名有两个字符,他该如何搜索呢? 方法:
“全部或部分文件名”:??.jpg “在这里寻找”:选择C、D、E盘 通配符介绍2:
“?”代表任意一个字符,如 “ ???.jpg ” 表示文件名为3个字符的jpg图片。
学生完成操作练习:
猜猜谜语:关羽打李逵(打一成语)
谜底藏在学生的电脑中,文件名4个字,jpg格式的图片。
设计意图:通过三个子任务的练习,帮助学生掌握对于计算机中繁杂的文件,如果快速地查到自己所需要的文件。同时介绍两个通配符的使用,用于模糊查询文件。在此过程中加深学生对文件或文件夹搜索的理解。最后的谜语操作练习让学生学会把课上所学与实际生活结合起来,帮助我们解决生活中的一些问题。
3.任务三——管理自己的文件
师:小明整理电脑后发现:生活、学习中的很多文档、资料和照片都没有归类保存,你能给他提提建议:如何创建多个文件夹管理上图中的文件呢?
方法:建文件夹分类存放文件,如下图所示:
学生自行操作练习。
思考:有没有其他的分类方法?
设计意图:通过练习建立文件夹的方式,让学生学会管理计算机中的文件,并能对文件的结构有清晰的认识。
(三)课堂小结
师:这节课我们学习了三部分内容:使用排列图标的方法整理桌面图标;使用通配符搜索文件或文件夹;利用文件夹分类的方法管理自己的文件。
希望同学们课后能把所学内容运用到实际生活中去,养成经常管理自己计算机文件的好习惯,做一个有信息素养的中学生!
七、教学反思
1 Smart Upload组件
Smart Upload是在Java Web开发中使用较多的一个文件上传下载组件,它的特点是使用非常简单,只需几行代码即可实现文件的上传下载,所以即使Smart Upload已经停止了更新,但直到今天依然是很多开发者的选择。
Smart Upload的API中主要包括Smart Upload、Files、File、Re⁃quest等核心类。由于篇幅限制,本文就不再列出各个类的方法了,读者可自行上网查阅。下面举例说明该组件的使用方法。
1)编写文件上传表单文件
文件上传表单使用属性值为file的input标记,注意表单必须以post方式提交,表单的enctype属性必须是multipart/formdata。该文件在三种文件上传方法中都需要用到。
<html>
<head><title>Smart Upload文件上传</title></head>
<body>
<form action="upload.jsp"method="post"enctype="multipart/form-data">
选择要上传的文件:<input type="file"name="filename"><br>
<input type="submit"value="上传">
</form></body></html>
2)编写JSP文件实现文件上传
首先需要将下载的Smart Upload组件jar包拷贝至Web应用的WEB-INFlib目录下,然后编写实现文件上传功能的JSP文件。文件上传核心代码如下:
Smart Upload su=new Smart Upload();//创建Smart Upload对象
su.initialize(page Context);//初始化Smart Upload对象
su.set Max File Size(300*1024*1024);//设置单个文件最大上传大小,如300M
su.set Allowed Files List("avi,wmv");//设置允许的上传文件类型
try{
su.upload();//执行上传
File file=su.get Files().get File(0);//获取第一个上传文件,若上传多个则循环获取
String save Path=“upload\”+file.get File Name();//定义上传文件的保存路径
file.save As(attach_url_path,File.SAVEAS_VIRTUAL);//保存上传文件到指定路径
}catch(Exception e){//可能出现违反上传文件大小、类型限制,或上传路径不存在
e.print Stack Trace();//此处可根据需要做适当的异常处理,如弹窗提示用户
}
如果是同时上传多个文件,可以使用for循环遍历各文件,使用su.get Files().get Count()可以获取上传的文件个数,以此作为循环条件。在处理上传文件发生的异常时,经过测试,异常信息中包含了四位整数代表的错误代号,其中1101表示上传类型不合法,1105表示超出了单个上传文件的大小限制,1135表示上传路径不存在,用户可以使用index Of()方法来判断异常文本中是否包含以上错误代号,从而给出不同的用户提示,提高用户界面的友好性。
2 Apache Commons File Upload组件
Commons File Upload是Apache组织免费提供的一个文件上传组件,可以直接从该组件官网下载,但是Commons File Up⁃load组件还依赖Commons IO组件,因此还需要下载Commons IO组件包。该组件使用起来也很方便,它提供了更为高效、安全的文件上传方式,目前也是很多Java Web框架(如Struts、Spring等)所支持的文件上传组件。
Commons File Upload的API中主要包括Disk File Item Facto⁃ry、Servlet File Upload、File Item等核心类。首先需要把关于Com⁃mons File Upload和Commons IO的两个jar包拷贝至WEB-INFlib目录下,然后编写实现上传文件功能的JSP文件。文件上传表单的代码与上面相同。使用Commons File Upload上传文件的核心代码如下:
注意不同浏览器的默认设置不同,IE浏览器默认提交文件的整个路径(可以在Internet安全设置更改为不包含本地路径),而火狐或谷歌浏览器默认只提交文件名,所以需要考虑可能包含路径的情况,把文件名从中提取出来。Commons File Up⁃load组件自身没有提供限制上传文件类型的方法,需要自行编码从文件名取出扩展名并与允许上传的文件扩展名进行比较,然后给出用户相应的错误提示。除了使用File Item的write()方法保存文件外,还可以通过File Item的get Input Stream()方法获取文件输入流,然后再通过输出流保存至文件甚至是数据库。在上传文件时如果超出了文件大小限制,系统会抛出异常File⁃Size Limit Exceed Exception,此异常是File Upload Exception异常的子类,所以可以捕获该异常,并在异常处理代码中给出用户错误提示。
3 Servlet 3.0文件上传
上述两种文件上传方法都需要用到第三方组件,而在最新的Servlet 3.0规范中,提供了对文件上传的原生支持,直接使用Servlet 3.0提供的API就能够轻松实现文件上传。较之Serv⁃let2.5主要是增加了两个类:Multipart Config和Part。其中Multi⁃part Config是注解类,要想让Servlet支持文件上传只需在其前面添加如下形式注解即可:
@Multipart Config(max File Size=1024*1024*300)//设置单个文件最大上传大小,如300M
另外Http Servlet Request类还增加了一个get Parts()方法,该方法可以获取表单提交过来的所有上传文件,这些文件信息封装在一个个的Part对象中。Part类提供了write方法用于保存上传的文件。在Servlet的do Post()方法编写如下代码:
如果上传文件违法大小限制,在获取Part对象时将抛出Il⁃legal State Exception异常,所以可以将以上for循环代码置入trycatch结构中,通过捕获Illegal State Exception异常来判断文件是否超出大小限制。对于上传文件后缀的限制方法与Commons File Upload组件一样,也是在得到的文件名中提取扩展名,再与允许上传的文件扩展名比较即可。
4 运行测试
分别运行以上三种文件上传程序,当上传体积较小文件时,三者在资源利用率及响应时间方面差别不太显著,但当增加上传文件大小时,例如上传300M左右的视频文件,经测试使用Smart Upload组件、Commons File Upload组件、Servlet 3.0 API上传文件花费的平均时间分别为6.642s、5.174s、4.750s。从资源占用情况来看,Servlet 3.0 API文件上传也是最节约系统资源的方法。
5 结论
本文分析对比了目前Java Web开发中三种常见的文件上传方法,前两种方法需要借助第三方组件来实现,其中Smart U⁃pload组件代码简单,实现方便,但目前已停止更新,并且在上传大文件时效率不高,而Commons File Upload组件目前依然在更新维护中,上传大文件时有不错的性能,并且也被很多主流框架所使用。最后一种文件上传方法使用Servlet 3.0自身的API来实现,不再依赖第三方组件,上传效率比Commons File U⁃pload也更为高效,所以如果Java Web项目是基于Java EE 6以上版本开发的,建议考虑使用Servlet 3.0 API的文件上传方法。
参考文献
[1]张书锋.基于Java语言的文件上传组件研究[J].电脑知识与技术,2013(33).
[2]刘杨.JSP项目开发常用文件上传组件比较及举例[J].电脑编程技巧及维护,2015(8).
【文件上传系统操作手册】推荐阅读:
石榴上传教案12-08
上传医院工作要点07-05
百度上传自荐书06-20
上传物业工作总结09-08
公司实习报告上传11-04
德育工作交流材料上传06-11
工作总结百度上传版09-22
巾帼建功集体发言稿-上传10-30
《文件和文件夹的操作》教学设计09-22
文件管理系统11-21