2011-04-05 50 views
1

首先让我只是说,我不想让任何人发布解决方案,因为我得到更多的满意编码自己,所以我会很感激指导和想法。PHP上传和下载脚本

所以我想建立一个网站,让我上传一个文件,存储它,显示所有上传文件的列表,然后下载一个选定的文件。

对我如何做到这一点有什么帮助?

更详细地说,

步骤1:

用户选择一个按钮上传文件。

第1步:它显示窗口,他们可以浏览其本地存储的文件并选择其中的一个。

第3步:

他们点击上传。

第4步:这被存储(也许在MySQL数据库中,不知道如何做到这一点)。

步骤5:用户点击按钮“浏览上载的文件”

步骤6:向用户示出所有的上载的文件

步骤7的列表:用户选择文件中的一个和点击下载。

我希望这使得它更清晰

而且我只是想有人告诉我从哪里开始真的。

三江源

+2

这是相当广泛的。您需要输入哪部分流程?如何存储文件,如何构建UI ....?你可能会更好地把它分解成更孤立的任务 – 2011-04-05 15:19:29

+0

Thankyou。我现在会这样做 – RSM 2011-04-05 15:19:50

+0

为什么你不开始,然后告诉我们你有什么问题。你知道如何在HTML中创建表单吗?如何将文件字段添加到表单?你知道如何访问文件数据一旦发送到服务器?你的第一个绊脚石究竟在哪里? – Erik 2011-04-05 15:20:35

回答

2

好,所以你需要一些指导而不是代码,这很好,因为没有人会创造这种类型的网站的来源,没有某种收入。


请不要以此为犯罪,但你显然缺乏技能开发能够处理这类用户的迭代系统,下面会显得格格不入,但自己对别人可以读它可以帮助他们更多,然后它会帮助你。


开始

我劝你是打破网站变成组件,然后看看有更详细一点的每个组件。

我会向下突破该站点的对象分为以下几个部分:

  • 数据库
    • 布局
    • 类型
  • 上传
    • 安全
    • 申通愤怒
    • 配额
    • 方法(API?)
  • 下载
    • 限制
    • 权限
    • 限制
  • 用户
    • 注册基于
    • 用户权限/角色
    • 订阅

还有更多大量添加,但这个想法是看看详细的每个组件,如果你必须让笔和纸,然后这样做,它只会让事情变得更容易。

好的,让我们从数据库开始,数据库可能会非常简单,MySQL通常是一个很好的选择,但也有其他选择。

对于结构,您需要首先查看网站的所有其他aspecs,以便能够理解数据库所需的内容。

对于上传/下载我不会依赖的Apache为此,Apache生成每个请求一个新的线程,并与速度的限制对他们发送大文件时,螺纹保持活跃的不再那么有可能你可以有数以千计的下载/上传线程并导致您的服务器速度非常慢。

我想看看libev作为一个概念,其作为被纳入Node不使用螺纹,并利用磁盘I/O

libev + 节点是一个事件循环结构,其然后将回调分配给读取的磁盘,然后在磁盘启动并准备向您发送大量数据时调用回调,但在分配回调和时间的过程中该回调实际上称为该进程已处理了您可能已设置的数百个其他回调/

用户需要放置在结构图表中,创建用户在您的结构中的组织方式将帮助您了解收入途径。

首先,您应该从一个框架开始,该框架可以帮助您构建快速且可扩展的应用程序(例如Codeigniter),这些应用程序可以帮助您为网站构建一个框架,以便现在可以运行您也可以使用Node.JS为此,但出于安全原因,我建议您仅使用Node将文件数据传递到客户端。

我认为你有这个想法:)

0

你应该使用move_uploaded_file函数来存储上传的文件,检查文件类型是确定和大小,... 然后将文件名保存到数据库中,你可以添加一些标签,描述您可以使用它来显示或搜索!

0

这个问题很普遍 - 你有什么特别的问题实现?您是否阅读过关于文件上传的PHP手册部分?

有许多事情你没有考虑到 - 不仅仅是分发恶意软件/许可内容的责任。