小编stu*_*zzo的帖子

PHP exif_read_data非法IFD大小

我正在开发一个应用程序,我在其中修改从AWS桶下载的jpeg文件的方向(如果存在).

在这里,您可以验证此图像是否具有exif旋转部分.

我下载图像

file_put_contents('/local/path/to/file', file_get_contents('/path/to/url/image'));
Run Code Online (Sandbox Code Playgroud)

在我尝试通过Gregwar Image库修复方向之后.

Image::open($path)->fixOrientation()->save($dest, $type, $quality);
Run Code Online (Sandbox Code Playgroud)

我尝试了几个图像,我总是收到消息

Warning: exif_read_data('/local/path/to/file'): Illegal IFD size
Run Code Online (Sandbox Code Playgroud)

我认为这是一个与我如何检索图像有关的问题,但我也尝试使用cUrl和fopen得到相同的结果.

有人有一些建议吗?

php jpeg exif

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

如何使用Symfony2和Doctrine回滚Behat 3功能测试中的提交?

作为标题,我的目标是回滚在Behat功能测试期间做出的任何提交.我检查这个答案非常相似,但它是从两年前开始,似乎不可能做到.

也许现在有了Behat 3,这是可能的.

我知道使用PHPUnit,我可以使用startUp和tearDown方法达到类似的效果.

我尝试使用@BeforeScenario和@AfterScenario注释来启动和回滚事务挂钩,但似乎behat和应用程序不共享实体管理器的相同实例.

一些建议吗?

谢谢.


UPDATE

谢谢大家的意见.这里有一些新的考虑:

  • LOAD FIXTURES:是的,它有效.我可以在测试开始之前运行灯具,但是问题(我的错误,不提它)是灯具有时需要几分钟才能加载,在测试开始前等待10分钟或更长时间是令人讨厌的.

  • BEGIN/ROLLBACK TRANSACTION:它既可以使用也可以使用.我没有收到任何错误,但测试期间写入的数据在结束时仍在我的数据库中.我在一个方法中添加了第一个标记为@BeforeScenario的方法,后者在一个用@AfterScenario标记的方法中

$this->kernel->getContainer()
    ->get('doctrine.orm.entity_manager')
    ->getConnection()
    ->beginTransaction();

$this->kernel->getContainer()
   ->get('doctrine.orm.entity_manager')
   ->getConnection()
   ->rollBack();
  • SAVEPOINT:我认为这正是我所需要的,但我的数据仍然存在.我尝试在@BeforeScenario方法中添加保存点的创建,并在@AfterScenario方法上回滚
public function gatherContexts(BeforeScenarioScope $scope) {
    $environment = $scope->getEnvironment();
    $connection = $this->kernel->getContainer()->get('doctrine.orm.entity_manager')->getConnection();
    $connection->beginTransaction();
    $connection->createSavepoint('tests');
}

public function rollback(AfterScenarioScope $scope) {
    $connection = $this->kernel->getContainer()->get('doctrine.orm.entity_manager')->getConnection();
    $connection->rollbackSavepoint('tests');
}

所有这些测试都用于测试我的API REST项目.经过这些考虑后,我认为Behat和我的应用程序不共享实体管理器的相同实例.您是否能够在测试期间在测试和项目之间共享相同的实例?

bdd symfony doctrine-orm behat

12
推荐指数
2
解决办法
1227
查看次数

ASP.Net MVC3通过Visual Studio修改日期和小数的文化?

我正在使用Razor开发MVC3应用程序.我在使用日期时遇到了麻烦,并在我的观点上加倍.我的Windows和Visual Studio都是英文版,但我想在"it-IT"中自定义项目的文化.我发现了几篇文章如何管理不同的文化,通过JQuery Validation插件或直接在页面上设置文化,但我很困惑!我想用于日期的格式是"DD/MM/YYYY",而双倍的格式是1.234,32.所以,

  • 如何告诉Visual Studio如何使用这些格式(我查看了Visual Studio的设置并且只有英文版)?
  • MVC注入代码来验证我的字段,如何更改它?
  • 什么是最好的方法?

显然任何建议都会受到赞赏.我发布了我的项目代码:

Offerta.cs

[MetadataType(typeof(Offerta_Validation))]
public partial class Offerta
{
}

public class Offerta_Validation
{
    [HiddenInput(DisplayValue = false)]
    public int IDOfferta { get; set; }

    [StringLength(300, ErrorMessage = "Campo troppo lungo")]
    [Required(ErrorMessage = "Campo obbligatorio")]
    public string Titolo { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:N2}")]
    [Required(ErrorMessage = "Campo obbligatorio")]
    [Price(MinPrice=0.01)]
    public decimal PrezzoIniziale { get; set; }

    [Required(ErrorMessage = "Campo obbligatorio")]
    [Integer]
    public int BuoniScontiMinimo { get; set; }


    public string …
Run Code Online (Sandbox Code Playgroud)

c# validation asp.net-mvc culture asp.net-mvc-3

9
推荐指数
3
解决办法
9288
查看次数

为什么我在 docker 容器中看不到我的文件?

我是 Docker 新手,我正在尝试设置我的第一个项目。为了测试如何使用它,我只是克隆了一个现成的项目并设置了它(Project repo)。正如指南所说,如果我访问特定的 url,我就会到达主页。更具体地说,是一个 symfony 起始页。

此外,使用此命令

docker run -i -t testdocker_application /bin/bash
Run Code Online (Sandbox Code Playgroud)

我能够登录到容器。

我的问题是,如果我尝试通过 bash 进入应用程序文件夹,我与主机共享的文件夹是空的。

我尝试了另一个项目,但结果是一样的。

我错在哪里?

这里有一些关于我的环境的信息:

  • Ubuntu 12.04
  • Docker 版本 1.8.3,构建 f4bf5c7

配置:

application:
    build: code
    volumes:
        - ./symfony:/var/www/symfony
        - ./logs/symfony:/var/www/symfony/app/logs
    tty: true
Run Code Online (Sandbox Code Playgroud)

ubuntu symfony docker

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

我无法在DbContext中看到POCO类的存储过程

为什么我看不到在我的DbContext中添加的存储过程?DbContext由CTP5版本(带有POCO类)引入的模板生成.

我添加了本教程所述的存储过程:http: //thedatafarm.com/blog/data-access/checking-out-one-of-the-new-stored-procedure-features-in-ef4/

此外,我搜索了条目是否在我的上下文中添加,这些是结果:

<Function Name="GetClientsForEmailSend" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" />

<FunctionImport Name="GetClientsForEmailSend" EntitySet="Client" ReturnType="Collection(DBMailMarketingModel.Client)" />

<FunctionImportMapping FunctionImportName="GetClientsForEmailSend" FunctionName="DBMailMarketingModel.Store.GetClientsForEmailSend">
Run Code Online (Sandbox Code Playgroud)

一个类似的问题是:

为什么EF4不会生成支持我的功能导入的方法?

但我已经完成了所有的建议.

这是存储过程:

ALTER PROCEDURE GetClientsForEmailSend
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT OFF;

-- Insert statements for procedure here
SELECT *
FROM dbo.Client AS c
INNER JOIN Subscription AS i on c.IDClient = i.IDClient
WHERE c.Email is not null and c.Email <> …
Run Code Online (Sandbox Code Playgroud)

stored-procedures entity-framework entity-framework-ctp5 asp.net-mvc-3

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