问题列表 - 第25031页

用户下载后删除文件

我用它来发送文件给用户

header('Content-type:  application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="file.zip"');
readfile($file);
Run Code Online (Sandbox Code Playgroud)

我想在用户下载后删除此文件,我该怎么办?

编辑:我的情况就是这样,当用户点击下载按钮时,我的脚本将创建一个临时zip文件,用户下载它,然后该临时zip文件将被删除.

编辑2:好的最佳方式似乎运行一个cron作业,将每小时清理一次临时文件.

编辑3:我测试了我的脚本unlink,它的工作原理,除非用户取消下载.如果用户取消下载,则zip文件将保留在服务器上.所以这就足够了.:)

编辑4:哇!connection_aborted()成功了!

ignore_user_abort(true);
if (connection_aborted()) {
    unlink($f);
}
Run Code Online (Sandbox Code Playgroud)

即使用户取消下载,也会删除该文件.

php

52
推荐指数
4
解决办法
5万
查看次数

使用XSLT删除xml标记

我有以下xml文件:

<xfa:data>
  <form1>
    <Page1>
    <Page2>
    <contractInfo> ... </contractInfo>
    <paymentInfo> ... </paymentInfo>
  </form1>
  <commercialType> .... </commercialType>
  <userList> ... </userList>
  <officesList> ... </officesList>
  <commercialType> .... </commercialType>
  <userList> ... </userList>
  <officesList> ... </officesList>
  <commercialType> .... </commercialType>
  <userList> ... </userList>
  <officesList> ... </officesList>
</xfa:data>
Run Code Online (Sandbox Code Playgroud)

我想删除commercialType,userList和officesList节点的每个发生,所以我的输出将是:

<xfa:data>
  <form1>
    <Page1>
    <Page2>
    <contractInfo> ... </contractInfo>
    <paymentInfo> ... </paymentInfo>
  </form1>
</xfa:data>
Run Code Online (Sandbox Code Playgroud)

我怎么能用XSLT做到这一点?

谢谢

xml xslt

5
推荐指数
1
解决办法
2万
查看次数

在Python中通过迭代在numpy/scipy中构建一个数组?

通常,我通过迭代一些数据来构建数组,例如:

my_array = []
for n in range(1000):
  # do operation, get value 
  my_array.append(value)
# cast to array
my_array = array(my_array)
Run Code Online (Sandbox Code Playgroud)

我发现我必须首先构建一个列表,然后将它(使用"array")转换为数组.这有什么方法吗?所有这些转换调用使代码混乱......我怎样才能迭代地构建"my_array",从一开始它就是一个数组?

python numpy scipy

22
推荐指数
3
解决办法
4万
查看次数

.NET/C# - 使用'using'语句处理对象

假设我有这样的方法:

public byte[] GetThoseBytes()
{
    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
    {
        ms.WriteByte(1);
        ms.WriteByte(2);
        return ms.ToArray();
    }
}
Run Code Online (Sandbox Code Playgroud)

这还会处理'ms'对象吗?我有疑问,可能是因为在语句块完成之前返回了一些东西.

谢谢,AJ.

.net c# using-statement

8
推荐指数
1
解决办法
557
查看次数

对于AES CBC加密,什么是IV的重要性?

对于IV,始终使用全零的安全威胁是什么?如果它允许解密加密文本,攻击者怎么能这样做呢?

更新:那么,如果第一块未加密数据的时间戳永远不会重复,那么仍然需要IV吗?

encryption cryptography

10
推荐指数
2
解决办法
7356
查看次数

linq2sql:单例或使用,最佳实践

当linq2sql使用(在asp.net mvc应用程序中)时,首选的做法是:为DataContextlike 创建"singleton" :

partial class db
{
    static db _db = new db(global::data.Properties.Settings.Default.nanocrmConnectionString, new AttributeMappingSource());

    public static db GetInstance()
    {
        return _db;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者在需要时检索新实例using:

using (db _db = new db())
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用using会给代码带来一些限制.所以我更喜欢使用单身之一.这是一种奇怪的做法吗?

UPD:
解释为什么我使用单身人士:

public class UserGroupRepository
{
    public static IQueryable<Group> RolesFor(string username)
    {
        User user = UserRepository.WithUsername(username);

        return from g in db.GetInstance().Groups
                join ug in db.GetInstance().UsersGroups on g.Id equals ug.GroupId
                where ug.UserId == user.Id
                select g;
    }
} …
Run Code Online (Sandbox Code Playgroud)

singleton linq-to-sql

7
推荐指数
1
解决办法
1813
查看次数

使用正确的大小解码Android中的位图

我用SD解码SD卡的位图BitmapFactory.decodeFile.有时位图大于应用程序需要或堆允许的位图,因此我BitmapFactory.Options.inSampleSize用来请求子采样(较小)位图.

问题是该平台没有强制执行inSampleSize的确切值,有时我的位图太小,或者对于可用内存而言仍然太大.

来自http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize:

注意:解码器将尝试满足此请求,但生成的位图可能具有与请求完全相同的不同维度.此外,2的幂通常更快/更容易让解码器兑现.

我应该如何解码SD卡中的位图以获得我需要的确切大小的位图,同时尽可能少地使用内存进行解码呢?

编辑:

当前源代码:

BitmapFactory.Options bounds = new BitmapFactory.Options();
this.bounds.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, bounds);
if (bounds.outWidth == -1) { // TODO: Error }
int width = bounds.outWidth;
int height = bounds.outHeight;
boolean withinBounds = width <= maxWidth && height <= maxHeight;
if (!withinBounds) {
    int newWidth = calculateNewWidth(int width, int height);
    float sampleSizeF = (float) width / (float) newWidth;
    int sampleSize = Math.round(sampleSizeF);
    BitmapFactory.Options resample = new BitmapFactory.Options();
    resample.inSampleSize = sampleSize; …
Run Code Online (Sandbox Code Playgroud)

memory android bitmap sd-card

61
推荐指数
3
解决办法
7万
查看次数

你如何比较valarrays与内置数组的性能?

使用比内置阵列更加用户友好的valarray会有很大的损失吗?你知道一些基准吗?

c++ performance

3
推荐指数
1
解决办法
602
查看次数

使用Haskell Parsec自定义whiteSpace

我想使用Parsec makeTokenParser来构建我的解析器,但我想使用我自己的定义whiteSpace.执行以下操作将替换whiteSpace为我的定义,但所有lexeme解析器仍使用旧定义(例如,P.identifier lexer将使用旧的whiteSpace).

...
lexer :: P.TokenParser ()
lexer      = l { P.whiteSpace = myWhiteSpace }
   where l = P.makeTokenParser myLanguageDef
...
Run Code Online (Sandbox Code Playgroud)

查看代码,makeTokenParser我想我明白为什么它以这种方式工作.我想知道是否有任何变通方法可以避免完全复制代码makeTokenParser

whitespace parsing haskell parsec

6
推荐指数
1
解决办法
943
查看次数

UINavigationBar顶部的自定义徽标?

我已经阅读了大量关于全自定义UINavigationBar背景的请求,但我想要的是在默认情况下覆盖徽标UINavigationBar而不是文本.最好,我想将它应用于一个UINavigationBar名为CustomNavigationBar 的子类.

iphone cocoa-touch objective-c uinavigationbar

3
推荐指数
1
解决办法
5825
查看次数